summary refs log tree commit diff
path: root/synapse/http/server.py
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2015-03-09 18:34:20 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2015-03-12 16:24:51 +0000
commit1748605c5d69cb93cbe6bb4d93060124cdc9282f (patch)
tree61aaa16a8c9369fd14c56c23efbdc959cd0348c4 /synapse/http/server.py
parentRemember to emit final linefeed from /metrics page, or Prometheus gets upset (diff)
downloadsynapse-1748605c5d69cb93cbe6bb4d93060124cdc9282f.tar.xz
Count incoming HTTP requests per servlet that responds
Diffstat (limited to '')
-rw-r--r--synapse/http/server.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/synapse/http/server.py b/synapse/http/server.py

index 23708c08c9..a0d190ff78 100644 --- a/synapse/http/server.py +++ b/synapse/http/server.py
@@ -38,7 +38,7 @@ logger = logging.getLogger(__name__) metrics = synapse.metrics.get_metrics_for(__name__) incoming_requests_counter = metrics.register_counter("requests", - labels=["method"], + labels=["method", "servlet"], ) outgoing_responses_counter = metrics.register_counter("responses", labels=["method","code"], @@ -122,8 +122,6 @@ class JsonResource(HttpServer, resource.Resource): This checks if anyone has registered a callback for that method and path. """ - incoming_requests_counter.inc(request.method) - code = None start = self.clock.time_msec() try: @@ -143,6 +141,15 @@ class JsonResource(HttpServer, resource.Resource): # returned response. We pass both the request and any # matched groups from the regex to the callback. + callback = path_entry.callback + + servlet_instance = getattr(callback, "__self__", None) + if servlet_instance is not None: + servlet_classname = servlet_instance.__class__.__name__ + else: + servlet_classname = "%r" % callback + incoming_requests_counter.inc(request.method, servlet_classname) + args = [ urllib.unquote(u).decode("UTF-8") for u in m.groups() ] @@ -152,10 +159,7 @@ class JsonResource(HttpServer, resource.Resource): request.method, request.path ) - code, response = yield path_entry.callback( - request, - *args - ) + code, response = yield callback(request, *args) self._send_response(request, code, response) return