Remove Null Data from Publisher
Monasca has added a check for null data. When the publisher does not find the meter value or metadata it defaults it to Null. This causes Monasca API to reject the sample. This is particularly evident in the Central and Compute Agents since they collect data that may be null. Change-Id: I51ca07ec10c6b414b6a26c057edc09487053f982
This commit is contained in:
parent
9db47cc446
commit
3f823deee6
|
@ -109,12 +109,16 @@ class MonascaDataFilter(object):
|
|||
if val:
|
||||
value_meta[meta_key] = val
|
||||
|
||||
meter_value = sample.get('volume') or sample.get('counter_volume')
|
||||
if meter_value is None:
|
||||
meter_value = 0
|
||||
|
||||
metric = dict(
|
||||
name=meter_name,
|
||||
timestamp=self._convert_timestamp(sample['timestamp']),
|
||||
value=sample.get('volume') or sample.get('counter_volume'),
|
||||
value=meter_value,
|
||||
dimensions=dimensions,
|
||||
value_meta=value_meta if value_meta else None,
|
||||
value_meta=value_meta,
|
||||
)
|
||||
|
||||
LOG.debug(_LI("Generated metric with name %(name)s,"
|
||||
|
|
|
@ -70,10 +70,12 @@ class TestMonUtils(base.BaseTestCase):
|
|||
r = data_filter.process_sample_for_monasca(s)
|
||||
|
||||
self.assertEqual(s.name, r['name'])
|
||||
self.assertIsNone(r['dimensions'].get('type'))
|
||||
self.assertIsNone(r.get('value_meta'))
|
||||
self.assertIsNotNone(r.get('dimensions'))
|
||||
self.assertIsNotNone(r.get('value_meta'))
|
||||
self.assertIsNotNone(r.get('value'))
|
||||
self.assertEqual(s.user_id, r['dimensions'].get('user_id'))
|
||||
self.assertEqual(s.project_id, r['dimensions']['project_id'])
|
||||
self.assertEqual(s.project_id, r['dimensions'].get('project_id'))
|
||||
self.assertEqual(s.resource_id, r['dimensions'].get('resource_id'))
|
||||
# 2015-04-07T20:07:06.156986 compare upto millisec
|
||||
monasca_ts = \
|
||||
timeutils.iso8601_from_timestamp(r['timestamp'] / 1000.0,
|
||||
|
|
Loading…
Reference in New Issue