diff --git a/ceilosca/ceilometer/publisher/monasca_data_filter.py b/ceilosca/ceilometer/publisher/monasca_data_filter.py index fc73dfc..c1993c7 100644 --- a/ceilosca/ceilometer/publisher/monasca_data_filter.py +++ b/ceilosca/ceilometer/publisher/monasca_data_filter.py @@ -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," diff --git a/ceilosca/ceilometer/tests/publisher/test_monasca_data_filter.py b/ceilosca/ceilometer/tests/publisher/test_monasca_data_filter.py index 33996f8..99b8f76 100644 --- a/ceilosca/ceilometer/tests/publisher/test_monasca_data_filter.py +++ b/ceilosca/ceilometer/tests/publisher/test_monasca_data_filter.py @@ -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,