Instrument encode_response with tracing in Sliding Sync requests (#18815)

Just filling in the hole I see in the trace after
`current_sync_for_user`.
This commit is contained in:
Eric Eastwood 2025-08-18 09:28:59 -05:00 committed by GitHub
parent 4ac656073d
commit 4cee8c7b99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 2 deletions

1
changelog.d/18815.misc Normal file
View File

@ -0,0 +1 @@
Instrument the `encode_response` part of Sliding Sync requests for more complete traces in Jaeger.

View File

@ -26,8 +26,8 @@ from typing import (
Any,
Awaitable,
Callable,
Collection,
Dict,
Iterable,
List,
Mapping,
Match,
@ -49,6 +49,7 @@ from synapse.api.constants import (
)
from synapse.api.errors import Codes, SynapseError
from synapse.api.room_versions import RoomVersion
from synapse.logging.opentracing import SynapseTags, set_tag, trace
from synapse.types import JsonDict, Requester
from . import EventBase, StrippedStateEvent, make_event_from_dict
@ -710,9 +711,10 @@ class EventClientSerializer:
"m.relations", {}
).update(serialized_aggregations)
@trace
async def serialize_events(
self,
events: Iterable[Union[JsonDict, EventBase]],
events: Collection[Union[JsonDict, EventBase]],
time_now: int,
*,
config: SerializeEventConfig = _DEFAULT_SERIALIZE_EVENT_CONFIG,
@ -731,6 +733,11 @@ class EventClientSerializer:
Returns:
The list of serialized events
"""
set_tag(
SynapseTags.FUNC_ARG_PREFIX + "events.length",
str(len(events)),
)
return [
await self.serialize_event(
event,

View File

@ -1017,6 +1017,7 @@ class SlidingSyncRestServlet(RestServlet):
return 200, response_content
@trace_with_opname("sliding_sync.encode_response")
async def encode_response(
self,
requester: Requester,
@ -1037,6 +1038,7 @@ class SlidingSyncRestServlet(RestServlet):
return response
@trace_with_opname("sliding_sync.encode_lists")
def encode_lists(
self, lists: Mapping[str, SlidingSyncResult.SlidingWindowList]
) -> JsonDict:
@ -1058,6 +1060,7 @@ class SlidingSyncRestServlet(RestServlet):
return serialized_lists
@trace_with_opname("sliding_sync.encode_rooms")
async def encode_rooms(
self,
requester: Requester,
@ -1178,6 +1181,7 @@ class SlidingSyncRestServlet(RestServlet):
return serialized_rooms
@trace_with_opname("sliding_sync.encode_extensions")
async def encode_extensions(
self, requester: Requester, extensions: SlidingSyncResult.Extensions
) -> JsonDict: