Don't drop batch on one bad metric
Change-Id: I313cfc26fa6ab6abf0415a4e43889c2a7a2b7cfe
This commit is contained in:
parent
cd53cafa7b
commit
8e6e3936c1
|
@ -79,15 +79,18 @@ class AgentCheck(util.Dimensions):
|
|||
for dim_kv in dim_key_values.items():
|
||||
if dim_kv[0] not in dimensions_white_list.keys():
|
||||
dimensions_white_list[dim_kv[0]] = dim_kv[1]
|
||||
self.aggregator.submit_metric(metric,
|
||||
value,
|
||||
metric_type,
|
||||
dimensions_white_list,
|
||||
delegated_tenant,
|
||||
hostname,
|
||||
device_name,
|
||||
value_meta,
|
||||
timestamp)
|
||||
try:
|
||||
self.aggregator.submit_metric(metric,
|
||||
value,
|
||||
metric_type,
|
||||
dimensions_white_list,
|
||||
delegated_tenant,
|
||||
hostname,
|
||||
device_name,
|
||||
value_meta,
|
||||
timestamp)
|
||||
except Exception as e:
|
||||
self.log.exception("invalid metric: {}".format(e))
|
||||
|
||||
def gauge(self, metric, value, dimensions=None, delegated_tenant=None, hostname=None,
|
||||
device_name=None, timestamp=None, value_meta=None):
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
# (C) Copyright 2017 Hewlett Packard Enterprise Development Company LP
|
||||
import unittest
|
||||
|
||||
import os
|
||||
|
||||
import monasca_agent.common.config as configuration
|
||||
import monasca_agent.common.metrics as metrics_pkg
|
||||
|
||||
from monasca_agent.collector.checks import AgentCheck
|
||||
|
||||
base_config = configuration.Config(os.path.join(os.path.dirname(__file__),
|
||||
'test-agent.yaml'))
|
||||
|
||||
|
||||
class TestAgentCheck(unittest.TestCase):
|
||||
def testBadMetricKeepBatch(self):
|
||||
agent_config = base_config.get_config(sections='Main')
|
||||
|
||||
check = AgentCheck("foo", {}, agent_config)
|
||||
|
||||
dimensions = {'A': 'B', 'B': 'C', 'D': 'E'}
|
||||
check.submit_metric("Foo",
|
||||
5,
|
||||
metrics_pkg.Gauge,
|
||||
dimensions=dimensions,
|
||||
delegated_tenant=None,
|
||||
hostname=None,
|
||||
device_name=None,
|
||||
value_meta=None)
|
||||
self.assertEqual(len(check.aggregator.metrics), 1)
|
||||
|
||||
dimensions = {'A': '()', 'B': 'C', 'D': 'E'}
|
||||
check.submit_metric("Bar",
|
||||
5,
|
||||
metrics_pkg.Gauge,
|
||||
dimensions=dimensions,
|
||||
delegated_tenant=None,
|
||||
hostname=None,
|
||||
device_name=None,
|
||||
value_meta=None)
|
||||
self.assertEqual(len(check.aggregator.metrics), 1)
|
||||
|
||||
dimensions = {'A': 'B', 'B': 'C', 'D': 'E'}
|
||||
check.submit_metric("Baz",
|
||||
5,
|
||||
metrics_pkg.Gauge,
|
||||
dimensions=dimensions,
|
||||
delegated_tenant=None,
|
||||
hostname=None,
|
||||
device_name=None,
|
||||
value_meta=None)
|
||||
self.assertEqual(len(check.aggregator.metrics), 2)
|
Loading…
Reference in New Issue