summary refs log tree commit diff
path: root/synapse/metrics
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2015-03-06 15:39:14 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2015-03-12 16:24:51 +0000
commit0b96bb793e7e5d3935804b8f0ccaf415006388a9 (patch)
treec28651d834294b79234828bde03ca4de813e8cde /synapse/metrics
parentBugfix to rendering output of vectored TimerMetrics (diff)
downloadsynapse-0b96bb793e7e5d3935804b8f0ccaf415006388a9.tar.xz
Have all @metrics.counted use a single metric name vectored on the method name, rather than a brand new scalar counter per counted method
Diffstat (limited to 'synapse/metrics')
-rw-r--r--synapse/metrics/__init__.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py
index c00f088fff..443d67f41c 100644
--- a/synapse/metrics/__init__.py
+++ b/synapse/metrics/__init__.py
@@ -63,10 +63,17 @@ class Metrics(object):
     def counted(self, func):
         """ A method decorator that registers a counter, to count invocations
         of this method. """
-        counter = self.register_counter(func.__name__)
+        if not hasattr(self, "method_counter"):
+            self.method_counter = self.register_counter(
+                "calls",
+                labels=["method"]
+            )
+
+        counter = self.method_counter
+        name = func.__name__
 
         def wrapped(*args, **kwargs):
-            counter.inc()
+            counter.inc(name)
             return func(*args, **kwargs)
         return wrapped