Fix inflight requests metric (incorrect name & traceback) (#3413)

pull/3418/head
Amber Brown 2018-06-20 11:18:57 +01:00 committed by GitHub
parent ccfdaf68be
commit f6c4d74f96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 3 deletions

View File

@ -117,13 +117,17 @@ def _get_in_flight_counts():
Returns: Returns:
dict[tuple[str, str], int] dict[tuple[str, str], int]
""" """
for rm in _in_flight_requests: # Cast to a list to prevent it changing while the Prometheus
# thread is collecting metrics
reqs = list(_in_flight_requests)
for rm in reqs:
rm.update_metrics() rm.update_metrics()
# Map from (method, name) -> int, the number of in flight requests of that # Map from (method, name) -> int, the number of in flight requests of that
# type # type
counts = {} counts = {}
for rm in _in_flight_requests: for rm in reqs:
key = (rm.method, rm.name,) key = (rm.method, rm.name,)
counts[key] = counts.get(key, 0) + 1 counts[key] = counts.get(key, 0) + 1
@ -131,7 +135,7 @@ def _get_in_flight_counts():
LaterGauge( LaterGauge(
"synapse_http_request_metrics_in_flight_requests_count", "synapse_http_server_in_flight_requests_count",
"", "",
["method", "servlet"], ["method", "servlet"],
_get_in_flight_counts, _get_in_flight_counts,