summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2015-03-06 18:40:20 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2015-03-12 16:24:51 +0000
commit0e847540c3aa1c471a00b3200f7f18e48004b48d (patch)
treed60815c3e4a05b7a0cfebab4b692b44ff9dbb765 /synapse
parentKill unused CounterMetric.fetch() method (diff)
downloadsynapse-0e847540c3aa1c471a00b3200f7f18e48004b48d.tar.xz
Prometheus needs "escaped" label values
Diffstat (limited to 'synapse')
-rw-r--r--synapse/metrics/metric.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/synapse/metrics/metric.py b/synapse/metrics/metric.py
index 93508eeacc..922cb5a6f1 100644
--- a/synapse/metrics/metric.py
+++ b/synapse/metrics/metric.py
@@ -35,12 +35,16 @@ class BaseMetric(object):
     def is_scalar(self):
         return not len(self.labels)
 
+    def _render_labelvalue(self, value):
+        # TODO: some kind of value escape
+        return '"%s"' % (value)
+
     def _render_key(self, values):
         if self.is_scalar():
             return ""
-        # TODO: some kind of value escape
         return "{%s}" % (
-            ",".join(["%s=%s" % kv for kv in zip(self.labels, values)])
+            ",".join(["%s=%s" % (k, self._render_labelvalue(v))
+                      for k, v in zip(self.labels, values)])
         )
 
     def render(self):