mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-05 19:48:19 +00:00
- `state.resolve` around a state resolution on the database, tagged `room_id`, `state_sets` and, once done, the resolution's database and auth chain time. It covers the handler's resolutions and the persister's, under `persist.state_res`. A room without a chain cover index is tagged `fallback`, not an error: the caller resolves its state in Python. - `events.load` around an event load, tagged with the number of events asked for, `reload`, and on success how many this load read from the database (`fetched`) and how many it did not (`cached`, which counts events another load was already reading). Its `db.*` spans nest under it. - `outgoing-client-request` around a request of the Rust HTTP client (MAS introspection), with the tags Python's `SimpleHttpClient` span has: `span.kind`, `http.method`, `http.url` (without credentials or query) and `http.status_code`. As in Python, an error status is the caller's to judge, so only a failure to get a response is marked as an error, before the conversion to a Python exception. A trial test loads an uncached event with tracing on and checks that `events.load` is under the caller's Python span, with the event fetched and its reads under it. Rust tests check `state.resolve` on a failed resolution and the HTTP client span against a local server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W4zxygfJC93SsugxskhoJG