mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 13:46:02 -04:00
Add vector counters to HTTP clients and servers; count the requests by method and responses by method and response code
This commit is contained in:
parent
c53ec53d80
commit
7d72e44eb9
3 changed files with 61 additions and 4 deletions
|
@ -18,6 +18,7 @@ from synapse.api.errors import (
|
|||
cs_exception, SynapseError, CodeMessageException, UnrecognizedRequestError
|
||||
)
|
||||
from synapse.util.logcontext import LoggingContext
|
||||
import synapse.metrics
|
||||
|
||||
from syutil.jsonutil import (
|
||||
encode_canonical_json, encode_pretty_printed_json
|
||||
|
@ -34,6 +35,15 @@ import urllib
|
|||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
metrics = synapse.metrics.get_metrics_for(__name__)
|
||||
|
||||
incoming_requests_counter = metrics.register_counter("incoming_requests",
|
||||
keys=["method"],
|
||||
)
|
||||
outgoing_responses_counter = metrics.register_counter("outgoing_responses",
|
||||
keys=["method","code"],
|
||||
)
|
||||
|
||||
|
||||
class HttpServer(object):
|
||||
""" Interface for registering callbacks on a HTTP server
|
||||
|
@ -112,6 +122,8 @@ 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:
|
||||
|
@ -190,6 +202,8 @@ class JsonResource(HttpServer, resource.Resource):
|
|||
request)
|
||||
return
|
||||
|
||||
outgoing_responses_counter.inc(request.method, str(code))
|
||||
|
||||
# TODO: Only enable CORS for the requests that need it.
|
||||
respond_with_json(
|
||||
request, code, response_json_object,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue