Skip to content

Commit 41dfb20

Browse files
committed
Update measure_func to support HasClockAndMetricsManager
1 parent c5296f5 commit 41dfb20

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

synapse/util/metrics.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,11 @@
5454
R = TypeVar("R")
5555

5656

57-
class HasClock(Protocol):
57+
class HasClockAndMetricsManager(Protocol):
58+
# Used to measure functions
5859
clock: Clock
60+
# Used to namespace the metrics to the given homeserver
61+
metrics_manager: HomeserverMetricsManager
5962

6063

6164
def measure_func(
@@ -81,12 +84,14 @@ async def foo(...):
8184
"""
8285

8386
def wrapper(
84-
func: Callable[Concatenate[HasClock, P], Awaitable[R]],
87+
func: Callable[Concatenate[HasClockAndMetricsManager, P], Awaitable[R]],
8588
) -> Callable[P, Awaitable[R]]:
8689
block_name = func.__name__ if name is None else name
8790

8891
@wraps(func)
89-
async def measured_func(self: HasClock, *args: P.args, **kwargs: P.kwargs) -> R:
92+
async def measured_func(
93+
self: HasClockAndMetricsManager, *args: P.args, **kwargs: P.kwargs
94+
) -> R:
9095
with Measure(self.clock, self.metrics_manager, block_name):
9196
r = await func(self, *args, **kwargs)
9297
return r

0 commit comments

Comments
 (0)