diff options
author | Zuul <zuul@review.opendev.org> | 2019-12-03 02:00:52 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-12-03 02:00:52 +0000 |
commit | 9af4250270f88506b1c656c695c64ebb560c88ad (patch) | |
tree | f44ca945aadccea43eff4dcb39d6f7566582ae68 | |
parent | 18e9bb957b758d4acd82fce1b7eb40af0eaa5b7b (diff) | |
parent | 8b6abd01acf875fbb0f68be0f27ac70e88caa5ce (diff) | |
download | ceilometer-9af4250270f88506b1c656c695c64ebb560c88ad.tar.gz |
Merge "Fix samples with dots in sample name" into stable/stein
-rw-r--r-- | ceilometer/publisher/prometheus.py | 12 | ||||
-rw-r--r-- | ceilometer/tests/unit/publisher/test_prometheus.py | 19 |
2 files changed, 24 insertions, 7 deletions
diff --git a/ceilometer/publisher/prometheus.py b/ceilometer/publisher/prometheus.py index 36f13a5e..973f8777 100644 --- a/ceilometer/publisher/prometheus.py +++ b/ceilometer/publisher/prometheus.py @@ -55,9 +55,11 @@ class PrometheusPublisher(http.HttpPublisher): elif s.type == sample.TYPE_GAUGE: metric_type = "gauge" - if metric_type and s.name not in doc_done: - data += "# TYPE %s %s\n" % (s.name, metric_type) - doc_done.add(s.name) + curated_sname = s.name.replace(".", "_") + + if metric_type and curated_sname not in doc_done: + data += "# TYPE %s %s\n" % (curated_sname, metric_type) + doc_done.add(curated_sname) # NOTE(sileht): prometheus pushgateway doesn't allow to push # timestamp_ms @@ -67,10 +69,10 @@ class PrometheusPublisher(http.HttpPublisher): # datetime.utcfromtimestamp(0) # ).total_seconds() * 1000 # data += '%s{resource_id="%s"} %s %d\n' % ( - # s.name, s.resource_id, s.volume, timestamp_ms) + # curated_sname, s.resource_id, s.volume, timestamp_ms) data += '%s{resource_id="%s"} %s\n' % ( - s.name, s.resource_id, s.volume) + curated_sname, s.resource_id, s.volume) self._do_post(data) @staticmethod diff --git a/ceilometer/tests/unit/publisher/test_prometheus.py b/ceilometer/tests/unit/publisher/test_prometheus.py index dc0f4ecf..e03daa27 100644 --- a/ceilometer/tests/unit/publisher/test_prometheus.py +++ b/ceilometer/tests/unit/publisher/test_prometheus.py @@ -65,6 +65,17 @@ class TestPrometheusPublisher(base.BaseTestCase): timestamp=datetime.datetime.now().isoformat(), resource_metadata={'name': 'TestPublish'}, ), + sample.Sample( + name='delta.epsilon', + type=sample.TYPE_GAUGE, + unit='', + volume=7, + user_id='test', + project_id='test', + resource_id=resource_id, + timestamp=datetime.datetime.now().isoformat(), + resource_metadata={'name': 'TestPublish'}, + ), ] def setUp(self): @@ -88,7 +99,9 @@ alpha{resource_id="%s"} 1 beta{resource_id="%s"} 3 # TYPE gamma gauge gamma{resource_id="%s"} 5 -""" % (self.resource_id, self.resource_id, self.resource_id) +# TYPE delta_epsilon gauge +delta_epsilon{resource_id="%s"} 7 +""" % (self.resource_id, self.resource_id, self.resource_id, self.resource_id) expected = [ mock.call('http://localhost:90/metrics/job/os', @@ -118,7 +131,9 @@ alpha{resource_id="%s"} 1 beta{resource_id="%s"} 3 # TYPE gamma gauge gamma{resource_id="%s"} 5 -""" % (self.resource_id, self.resource_id, self.resource_id) +# TYPE delta_epsilon gauge +delta_epsilon{resource_id="%s"} 7 +""" % (self.resource_id, self.resource_id, self.resource_id, self.resource_id) expected = [ mock.call('https://localhost:90/metrics/job/os', |