diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-03-09 20:35:33 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-03-12 16:24:51 +0000 |
commit | cbc0406be844894cac08c457544f1eb0c28435bb (patch) | |
tree | 1bb063df91f3d49ba6824aadc502045ac3819b97 | |
parent | Count incoming HTTP requests per servlet that responds (diff) | |
download | synapse-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.py | 11 | ||||
-rw-r--r-- | tests/metrics/test_metric.py | 6 |
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', ]) |