Skip to content

Commit

Permalink
Add metrics for sliding sync processing time (#17593)
Browse files Browse the repository at this point in the history
This should let us see how quickly we actually process things in
practice.
  • Loading branch information
erikjohnston authored Aug 20, 2024
1 parent 6eb98a4 commit 1042804
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog.d/17593.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add histogram metrics for sliding sync processing time.
15 changes: 15 additions & 0 deletions synapse/handlers/sliding_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@

import attr
from immutabledict import immutabledict
from prometheus_client import Histogram
from typing_extensions import assert_never

from synapse.api.constants import (
Expand Down Expand Up @@ -104,6 +105,13 @@
logger = logging.getLogger(__name__)


sync_processing_time = Histogram(
"synapse_sliding_sync_processing_time",
"Time taken to generate a sliding sync response, ignoring wait times.",
["initial"],
)


class Sentinel(enum.Enum):
# defining a sentinel in this way allows mypy to correctly handle the
# type of a dictionary lookup and subsequent type narrowing.
Expand Down Expand Up @@ -571,6 +579,8 @@ async def current_sync_for_user(
from_token: The point in the stream to sync from. Token of the end of the
previous batch. May be `None` if this is the initial sync request.
"""
start_time_s = self.clock.time()

user_id = sync_config.user.to_string()
app_service = self.store.get_app_service_by_user_id(user_id)
if app_service:
Expand Down Expand Up @@ -934,6 +944,11 @@ async def handle_room(room_id: str) -> None:
set_tag(SynapseTags.RESULT_PREFIX + "result", bool(sliding_sync_result))
set_tag(SynapseTags.FUNC_ARG_PREFIX + "sync_config.user", user_id)

end_time_s = self.clock.time()
sync_processing_time.labels(from_token is not None).observe(
end_time_s - start_time_s
)

return sliding_sync_result

@trace
Expand Down

0 comments on commit 1042804

Please sign in to comment.