From 1e314284709651e9dd6571a0bc033ca304a4decf Mon Sep 17 00:00:00 2001 From: Xiretza Date: Mon, 6 May 2024 17:38:59 +0000 Subject: [PATCH] Better span traces More information, fewer useless spans. The span on request_spawn() can never emit any events, it only creates a useless empty root span for every request. --- src/api/client_server/sync.rs | 1 + src/database/mod.rs | 3 +-- src/router/mod.rs | 5 ++++- src/service/admin/mod.rs | 1 + src/service/presence/mod.rs | 1 + src/service/rooms/read_receipt/mod.rs | 1 + src/service/rooms/timeline/mod.rs | 1 + src/service/sending/appservice.rs | 1 + src/service/sending/mod.rs | 3 ++- src/service/sending/sender.rs | 6 ++++-- 10 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs index 988cbdf7..45aeb82a 100644 --- a/src/api/client_server/sync.rs +++ b/src/api/client_server/sync.rs @@ -138,6 +138,7 @@ pub(crate) async fn sync_events_route( result } +#[tracing::instrument(skip(body, tx))] async fn sync_helper_wrapper( sender_user: OwnedUserId, sender_device: OwnedDeviceId, body: sync_events::v3::Request, tx: Sender>>, diff --git a/src/database/mod.rs b/src/database/mod.rs index 9f51cbb7..a8c7dd32 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -421,7 +421,6 @@ impl KeyValueDatabase { Ok(()) } - #[tracing::instrument] fn start_check_for_updates_task() { let timer_interval = Duration::from_secs(7200); // 2 hours @@ -472,7 +471,6 @@ impl KeyValueDatabase { Ok(()) } - #[tracing::instrument] fn start_cleanup_task() { let timer_interval = Duration::from_secs(u64::from(services().globals.config.cleanup_second_interval)); @@ -520,6 +518,7 @@ impl KeyValueDatabase { }); } + #[tracing::instrument] fn perform_cleanup() { if !services().globals.config.rocksdb_periodic_cleanup { return; diff --git a/src/router/mod.rs b/src/router/mod.rs index 03e8be60..bf07102d 100644 --- a/src/router/mod.rs +++ b/src/router/mod.rs @@ -67,7 +67,10 @@ pub(crate) async fn build(server: &Server) -> io::Result, next: axum::middleware::Next, ) -> Result { diff --git a/src/service/admin/mod.rs b/src/service/admin/mod.rs index ea5c137d..782f8745 100644 --- a/src/service/admin/mod.rs +++ b/src/service/admin/mod.rs @@ -161,6 +161,7 @@ impl Service { self.sender.send(message).expect("message sent"); } + #[tracing::instrument(skip(self))] async fn handle_event(&self, event: AdminRoomEvent, admin_room: &RoomId, server_user: &UserId) -> Result<()> { let (mut message_content, reply) = match event { AdminRoomEvent::SendMessage(content) => (content, None), diff --git a/src/service/presence/mod.rs b/src/service/presence/mod.rs index 4ee56cc5..5cda6102 100644 --- a/src/service/presence/mod.rs +++ b/src/service/presence/mod.rs @@ -218,6 +218,7 @@ async fn presence_timer(user_id: OwnedUserId, timeout: Duration) -> OwnedUserId user_id } +#[tracing::instrument] fn process_presence_timer(user_id: &OwnedUserId) -> Result<()> { let idle_timeout = services().globals.config.presence_idle_timeout_s * 1_000; let offline_timeout = services().globals.config.presence_offline_timeout_s * 1_000; diff --git a/src/service/rooms/read_receipt/mod.rs b/src/service/rooms/read_receipt/mod.rs index 006204ab..c4d3cf9a 100644 --- a/src/service/rooms/read_receipt/mod.rs +++ b/src/service/rooms/read_receipt/mod.rs @@ -11,6 +11,7 @@ pub(crate) struct Service { impl Service { /// Replaces the previous read receipt. + #[tracing::instrument(skip(self, event))] pub(crate) fn readreceipt_update(&self, user_id: &UserId, room_id: &RoomId, event: ReceiptEvent) -> Result<()> { self.db.readreceipt_update(user_id, room_id, event)?; services().sending.flush_room(room_id)?; diff --git a/src/service/rooms/timeline/mod.rs b/src/service/rooms/timeline/mod.rs index ea9f1613..2408a035 100644 --- a/src/service/rooms/timeline/mod.rs +++ b/src/service/rooms/timeline/mod.rs @@ -628,6 +628,7 @@ impl Service { Ok(pdu_id) } + #[tracing::instrument(skip_all)] pub(crate) fn create_hash_and_sign_event( &self, pdu_builder: PduBuilder, diff --git a/src/service/sending/appservice.rs b/src/service/sending/appservice.rs index 4764f889..b14b0bd7 100644 --- a/src/service/sending/appservice.rs +++ b/src/service/sending/appservice.rs @@ -10,6 +10,7 @@ use crate::{debug_error, services, utils, Error, Result}; /// /// Only returns Ok(None) if there is no url specified in the appservice /// registration file +#[tracing::instrument(skip_all, fields(appservice = ®istration.id))] pub(crate) async fn send_request(registration: Registration, request: T) -> Result> where T: OutgoingRequest + Debug, diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs index ed01e797..39880328 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -176,7 +176,7 @@ impl Service { Ok(()) } - #[tracing::instrument(skip(self, room_id))] + #[tracing::instrument(skip(self))] pub(crate) fn flush_room(&self, room_id: &RoomId) -> Result<()> { let servers = services() .rooms @@ -234,6 +234,7 @@ impl Service { Ok(()) } + #[tracing::instrument(skip(self))] fn dispatch(&self, msg: Msg) -> Result<()> { debug_assert!(!self.sender.is_full(), "channel full"); debug_assert!(!self.sender.is_closed(), "channel closed"); diff --git a/src/service/sending/sender.rs b/src/service/sending/sender.rs index f02f789b..7adb3d2b 100644 --- a/src/service/sending/sender.rs +++ b/src/service/sending/sender.rs @@ -26,7 +26,7 @@ use super::{appservice, send, Destination, Msg, SendingEvent, Service}; use crate::{ service::presence::Presence, services, - utils::{calculate_hash, user_id::user_is_local}, + utils::{calculate_hash, debug_slice_truncated, user_id::user_is_local}, Error, PduEvent, Result, }; @@ -78,6 +78,7 @@ impl Service { }; } + #[tracing::instrument(skip(self, _futures, statuses))] fn handle_response_err( &self, dest: Destination, _futures: &mut SendingFutures<'_>, statuses: &mut CurTransactionStatus, e: &Error, ) { @@ -91,6 +92,7 @@ impl Service { }); } + #[tracing::instrument(skip(self, futures, statuses))] fn handle_response_ok( &self, dest: &Destination, futures: &mut SendingFutures<'_>, statuses: &mut CurTransactionStatus, ) { @@ -155,7 +157,7 @@ impl Service { } } - #[tracing::instrument(skip(self, dest, new_events, statuses))] + #[tracing::instrument(skip(self, dest, statuses), fields(new_events = debug_slice_truncated(&new_events, 3)))] fn select_events( &self, dest: &Destination,