summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2019-12-03 02:00:52 +0000
committerGerrit Code Review <review@openstack.org>2019-12-03 02:00:52 +0000
commit9af4250270f88506b1c656c695c64ebb560c88ad (patch)
treef44ca945aadccea43eff4dcb39d6f7566582ae68
parent18e9bb957b758d4acd82fce1b7eb40af0eaa5b7b (diff)
parent8b6abd01acf875fbb0f68be0f27ac70e88caa5ce (diff)
downloadceilometer-9af4250270f88506b1c656c695c64ebb560c88ad.tar.gz
Merge "Fix samples with dots in sample name" into stable/stein
-rw-r--r--ceilometer/publisher/prometheus.py12
-rw-r--r--ceilometer/tests/unit/publisher/test_prometheus.py19
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',