summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2023-01-31 12:43:20 +0000
committerGitHub <noreply@github.com>2023-01-31 12:43:20 +0000
commit3b8574b4f250bac1e4d4cfbf6b1ceec83bc0bac2 (patch)
tree4dac0f4334467979a26d3bd0c153746edc463e6e
parentFix "Re-starting finished log context" spam when creating events (#14947) (diff)
downloadsynapse-3b8574b4f250bac1e4d4cfbf6b1ceec83bc0bac2.tar.xz
Tag /send_join responses to detect faster joins (#14950)
* Tag /send_join responses to detect faster joins

* Changelog

* Define a proper SynapseTag

* isort
-rw-r--r--changelog.d/14950.misc1
-rw-r--r--synapse/federation/federation_server.py6
-rw-r--r--synapse/logging/opentracing.py5
3 files changed, 12 insertions, 0 deletions
diff --git a/changelog.d/14950.misc b/changelog.d/14950.misc
new file mode 100644
index 0000000000..6602776b3f
--- /dev/null
+++ b/changelog.d/14950.misc
@@ -0,0 +1 @@
+Faster joins: tag `v2/send_join/` requests to indicate if they served a partial join response.
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index 3197939a36..c9a6dfd1a4 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -62,7 +62,9 @@ from synapse.logging.context import (
     run_in_background,
 )
 from synapse.logging.opentracing import (
+    SynapseTags,
     log_kv,
+    set_tag,
     start_active_span_from_edu,
     tag_args,
     trace,
@@ -678,6 +680,10 @@ class FederationServer(FederationBase):
         room_id: str,
         caller_supports_partial_state: bool = False,
     ) -> Dict[str, Any]:
+        set_tag(
+            SynapseTags.SEND_JOIN_RESPONSE_IS_PARTIAL_STATE,
+            caller_supports_partial_state,
+        )
         await self._room_member_handler._join_rate_per_room_limiter.ratelimit(  # type: ignore[has-type]
             requester=None,
             key=room_id,
diff --git a/synapse/logging/opentracing.py b/synapse/logging/opentracing.py
index a705af8356..8ef9a0dda8 100644
--- a/synapse/logging/opentracing.py
+++ b/synapse/logging/opentracing.py
@@ -322,6 +322,11 @@ class SynapseTags:
     # The name of the external cache
     CACHE_NAME = "cache.name"
 
+    # Boolean. Present on /v2/send_join requests, omitted from all others.
+    # True iff partial state was requested and we provided (or intended to provide)
+    # partial state in the response.
+    SEND_JOIN_RESPONSE_IS_PARTIAL_STATE = "send_join.partial_state_response"
+
     # Used to tag function arguments
     #
     # Tag a named arg. The name of the argument should be appended to this prefix.