Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit a648a06

Browse files
authored
Add some tracing spans to give insight into local joins (#13439)
1 parent 92d21fa commit a648a06

File tree

3 files changed

+40
-33
lines changed

3 files changed

+40
-33
lines changed

changelog.d/13439.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add some tracing to give more insight into local room joins.

synapse/handlers/message.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
from synapse.events.snapshot import EventContext
5353
from synapse.events.validator import EventValidator
5454
from synapse.handlers.directory import DirectoryHandler
55+
from synapse.logging import opentracing
5556
from synapse.logging.context import make_deferred_yieldable, run_in_background
5657
from synapse.metrics.background_process_metrics import run_as_background_process
5758
from synapse.replication.http.send_event import ReplicationSendEventRestServlet
@@ -1374,9 +1375,10 @@ async def _persist_event(
13741375
# and `state_groups` because they have `prev_events` that aren't persisted yet
13751376
# (historical messages persisted in reverse-chronological order).
13761377
if not event.internal_metadata.is_historical():
1377-
await self._bulk_push_rule_evaluator.action_for_event_by_user(
1378-
event, context
1379-
)
1378+
with opentracing.start_active_span("calculate_push_actions"):
1379+
await self._bulk_push_rule_evaluator.action_for_event_by_user(
1380+
event, context
1381+
)
13801382

13811383
try:
13821384
# If we're a worker we need to hit out to the master.
@@ -1463,9 +1465,10 @@ async def cache_joined_hosts_for_event(
14631465
state = await state_entry.get_state(
14641466
self._storage_controllers.state, StateFilter.all()
14651467
)
1466-
joined_hosts = await self.store.get_joined_hosts(
1467-
event.room_id, state, state_entry
1468-
)
1468+
with opentracing.start_active_span("get_joined_hosts"):
1469+
joined_hosts = await self.store.get_joined_hosts(
1470+
event.room_id, state, state_entry
1471+
)
14691472

14701473
# Note that the expiry times must be larger than the expiry time in
14711474
# _external_cache_joined_hosts_updates.

synapse/handlers/room_member.py

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from synapse.events import EventBase
3333
from synapse.events.snapshot import EventContext
3434
from synapse.handlers.profile import MAX_AVATAR_URL_LEN, MAX_DISPLAYNAME_LEN
35+
from synapse.logging import opentracing
3536
from synapse.module_api import NOT_SPAM
3637
from synapse.storage.state import StateFilter
3738
from synapse.types import (
@@ -428,14 +429,14 @@ async def _local_membership_update(
428429
await self._join_rate_per_room_limiter.ratelimit(
429430
requester, key=room_id, update=False
430431
)
431-
432-
result_event = await self.event_creation_handler.handle_new_client_event(
433-
requester,
434-
event,
435-
context,
436-
extra_users=[target],
437-
ratelimit=ratelimit,
438-
)
432+
with opentracing.start_active_span("handle_new_client_event"):
433+
result_event = await self.event_creation_handler.handle_new_client_event(
434+
requester,
435+
event,
436+
context,
437+
extra_users=[target],
438+
ratelimit=ratelimit,
439+
)
439440

440441
if event.membership == Membership.LEAVE:
441442
if prev_member_event_id:
@@ -564,25 +565,26 @@ async def update_membership(
564565
# by application services), and then by room ID.
565566
async with self.member_as_limiter.queue(as_id):
566567
async with self.member_linearizer.queue(key):
567-
result = await self.update_membership_locked(
568-
requester,
569-
target,
570-
room_id,
571-
action,
572-
txn_id=txn_id,
573-
remote_room_hosts=remote_room_hosts,
574-
third_party_signed=third_party_signed,
575-
ratelimit=ratelimit,
576-
content=content,
577-
new_room=new_room,
578-
require_consent=require_consent,
579-
outlier=outlier,
580-
historical=historical,
581-
allow_no_prev_events=allow_no_prev_events,
582-
prev_event_ids=prev_event_ids,
583-
state_event_ids=state_event_ids,
584-
depth=depth,
585-
)
568+
with opentracing.start_active_span("update_membership_locked"):
569+
result = await self.update_membership_locked(
570+
requester,
571+
target,
572+
room_id,
573+
action,
574+
txn_id=txn_id,
575+
remote_room_hosts=remote_room_hosts,
576+
third_party_signed=third_party_signed,
577+
ratelimit=ratelimit,
578+
content=content,
579+
new_room=new_room,
580+
require_consent=require_consent,
581+
outlier=outlier,
582+
historical=historical,
583+
allow_no_prev_events=allow_no_prev_events,
584+
prev_event_ids=prev_event_ids,
585+
state_event_ids=state_event_ids,
586+
depth=depth,
587+
)
586588

587589
return result
588590

@@ -649,6 +651,7 @@ async def update_membership_locked(
649651
Returns:
650652
A tuple of the new event ID and stream ID.
651653
"""
654+
652655
content_specified = bool(content)
653656
if content is None:
654657
content = {}

0 commit comments

Comments
 (0)