summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2015-03-09 20:35:33 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2015-03-12 16:24:51 +0000
commitcbc0406be844894cac08c457544f1eb0c28435bb (patch)
tree1bb063df91f3d49ba6824aadc502045ac3819b97
parentCount incoming HTTP requests per servlet that responds (diff)
downloadsynapse-cbc0406be844894cac08c457544f1eb0c28435bb.tar.xz
Export CacheMetric as hits+total, rather than hits+misses, as it's easier to derive hit ratio from that
-rw-r--r--synapse/metrics/metric.py11
-rw-r--r--tests/metrics/test_metric.py6
2 files changed, 9 insertions, 8 deletions
diff --git a/synapse/metrics/metric.py b/synapse/metrics/metric.py
index 922cb5a6f1..6b7d3358bc 100644
--- a/synapse/metrics/metric.py
+++ b/synapse/metrics/metric.py
@@ -134,7 +134,7 @@ class TimerMetric(CounterMetric):
 
 class CacheMetric(object):
     """A combination of two CounterMetrics, one to count cache hits and one to
-    count misses, and a callback metric to yield the current size.
+    count a total, and a callback metric to yield the current size.
 
     This metric generates standard metric name pairs, so that monitoring rules
     can easily be applied to measure hit ratio."""
@@ -142,8 +142,8 @@ class CacheMetric(object):
     def __init__(self, name, size_callback, labels=[]):
         self.name = name
 
-        self.hits   = CounterMetric(name + ":hits",   labels=labels)
-        self.misses = CounterMetric(name + ":misses", labels=labels)
+        self.hits  = CounterMetric(name + ":hits",  labels=labels)
+        self.total = CounterMetric(name + ":total", labels=labels)
 
         self.size = CallbackMetric(name + ":size",
             callback=size_callback,
@@ -152,9 +152,10 @@ class CacheMetric(object):
 
     def inc_hits(self, *values):
         self.hits.inc(*values)
+        self.total.inc(*values)
 
     def inc_misses(self, *values):
-        self.misses.inc(*values)
+        self.total.inc(*values)
 
     def render(self):
-        return self.hits.render() + self.misses.render() + self.size.render()
+        return self.hits.render() + self.total.render() + self.size.render()
diff --git a/tests/metrics/test_metric.py b/tests/metrics/test_metric.py
index 1919630feb..193908b44e 100644
--- a/tests/metrics/test_metric.py
+++ b/tests/metrics/test_metric.py
@@ -140,7 +140,7 @@ class CacheMetricTestCase(unittest.TestCase):
 
         self.assertEquals(metric.render(), [
             'cache:hits 0',
-            'cache:misses 0',
+            'cache:total 0',
             'cache:size 0',
         ])
 
@@ -149,7 +149,7 @@ class CacheMetricTestCase(unittest.TestCase):
 
         self.assertEquals(metric.render(), [
             'cache:hits 0',
-            'cache:misses 1',
+            'cache:total 1',
             'cache:size 1',
         ])
 
@@ -157,6 +157,6 @@ class CacheMetricTestCase(unittest.TestCase):
 
         self.assertEquals(metric.render(), [
             'cache:hits 1',
-            'cache:misses 1',
+            'cache:total 2',
             'cache:size 1',
         ])