Skip to content

Commit d1b58c0

Browse files
committed
Add server name label to custom metrics
1 parent ef6f5ba commit d1b58c0

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

synapse/handlers/pagination.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from synapse.events.utils import SerializeEventConfig
3333
from synapse.handlers.worker_lock import NEW_EVENT_DURING_PURGE_LOCK_NAME
3434
from synapse.logging.opentracing import trace
35+
from synapse.metrics import SERVER_NAME_LABEL
3536
from synapse.metrics.background_process_metrics import run_as_background_process
3637
from synapse.rest.admin._base import assert_user_is_admin
3738
from synapse.streams.config import PaginationConfig
@@ -54,7 +55,11 @@
5455

5556
logger = logging.getLogger(__name__)
5657

57-
purge_time = Histogram("room_purge_time", "Time taken to purge rooms (sec)")
58+
purge_time = Histogram(
59+
"room_purge_time",
60+
"Time taken to purge rooms (sec)",
61+
labelnames=[SERVER_NAME_LABEL],
62+
)
5863

5964
# How many single event gaps we tolerate returning in a `/messages` response before we
6065
# backfill and try to fill in the history. This is an arbitrarily picked number so feel
@@ -416,7 +421,9 @@ async def purge_room(
416421
await self._storage_controllers.purge_events.purge_room(room_id)
417422

418423
purge_end = time.time()
419-
purge_time.observe(purge_end - purge_start)
424+
purge_time.labels(**{SERVER_NAME_LABEL: self.server_name}).observe(
425+
purge_end - purge_start
426+
)
420427
logger.info("purge complete for room_id %s", room_id)
421428

422429
@trace

synapse/handlers/room.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
from synapse.events.snapshot import UnpersistedEventContext
7676
from synapse.events.utils import copy_and_fixup_power_levels_contents
7777
from synapse.handlers.relations import BundledAggregations
78+
from synapse.metrics import SERVER_NAME_LABEL
7879
from synapse.rest.admin._base import assert_user_is_admin
7980
from synapse.streams import EventSource
8081
from synapse.types import (
@@ -112,14 +113,20 @@
112113
FIVE_MINUTES_IN_MS = 5 * 60 * 1000
113114

114115

115-
shutdown_time = Histogram("room_shutdown_time", "Time taken to shutdown rooms (sec)")
116+
shutdown_time = Histogram(
117+
"room_shutdown_time",
118+
"Time taken to shutdown rooms (sec)",
119+
labelnames=[SERVER_NAME_LABEL],
120+
)
116121
shutdown_kick_count = Histogram(
117122
"room_shutdown_kick_count",
118123
"Number of users successfully kicked while shutting down a room",
124+
labelnames=[SERVER_NAME_LABEL],
119125
)
120126
shutdown_failed_kick_count = Histogram(
121127
"room_shutdown_failed_kick_count",
122128
"Number of users that were failed to be kicked while shutting down a room",
129+
labelnames=[SERVER_NAME_LABEL],
123130
)
124131

125132

@@ -2457,8 +2464,14 @@ async def shutdown_room(
24572464
result["local_aliases"] = []
24582465

24592466
shutdown_end = time.time()
2460-
shutdown_kick_count.observe(len(result["kicked_users"]))
2461-
shutdown_failed_kick_count.observe(len(result["failed_to_kick_users"]))
2462-
shutdown_time.observe(shutdown_end - shutdown_start)
2467+
shutdown_kick_count.labels(**{SERVER_NAME_LABEL: self.hs.hostname}).observe(
2468+
len(result["kicked_users"])
2469+
)
2470+
shutdown_failed_kick_count.labels(
2471+
**{SERVER_NAME_LABEL: self.hs.hostname}
2472+
).observe(len(result["failed_to_kick_users"]))
2473+
shutdown_time.labels(**{SERVER_NAME_LABEL: self.hs.hostname}).observe(
2474+
shutdown_end - shutdown_start
2475+
)
24632476

24642477
return result

synapse/rest/admin/rooms.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
parse_string,
4747
)
4848
from synapse.http.site import SynapseRequest
49+
from synapse.metrics import SERVER_NAME_LABEL
4950
from synapse.rest.admin._base import (
5051
admin_patterns,
5152
assert_requester_is_admin,
@@ -67,6 +68,7 @@
6768
delete_time = Histogram(
6869
"admin_room_delete_time",
6970
"Time taken to delete rooms via the admin API (sec)",
71+
labelnames=[SERVER_NAME_LABEL],
7072
)
7173

7274

@@ -356,7 +358,9 @@ async def on_DELETE(
356358
)
357359
end = time.time()
358360
logger.info(f"[admin/rooms] deleting {room_id} took {end - start} seconds")
359-
delete_time.observe(end - start)
361+
delete_time.labels(**{SERVER_NAME_LABEL: request.our_server_name}).observe(
362+
end - start
363+
)
360364
return response
361365

362366
async def _delete_room(

0 commit comments

Comments
 (0)