From 63c548991f19a3eaa51fe9fa25b90eeb424e4722 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 16 Apr 2025 14:24:01 +0200 Subject: [PATCH] Warn if event handling takes too long in daemon or coordinator --- binaries/coordinator/src/lib.rs | 11 +++++++++++ binaries/daemon/src/lib.rs | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/binaries/coordinator/src/lib.rs b/binaries/coordinator/src/lib.rs index e002f859..cdad4ebd 100644 --- a/binaries/coordinator/src/lib.rs +++ b/binaries/coordinator/src/lib.rs @@ -201,6 +201,9 @@ async fn start_inner( let mut daemon_connections = DaemonConnections::default(); while let Some(event) = events.next().await { + let start = Instant::now(); + let event_debug = format!("{event:?}"); + if event.log() { tracing::trace!("Handling event {event:?}"); } @@ -704,6 +707,14 @@ async fn start_inner( daemon_connections.remove(&daemon_id); } } + + let elapsed = start.elapsed(); + if elapsed > Duration::from_millis(100) { + tracing::warn!( + "Coordinator took {}ms for handling event: {event_debug}", + elapsed.as_millis() + ); + } } tracing::info!("stopped"); diff --git a/binaries/daemon/src/lib.rs b/binaries/daemon/src/lib.rs index 35ce54c4..1e4ca636 100644 --- a/binaries/daemon/src/lib.rs +++ b/binaries/daemon/src/lib.rs @@ -320,6 +320,9 @@ impl Daemon { tracing::warn!("failed to update HLC with incoming event timestamp: {err}"); } + let start = Instant::now(); + let event_debug = format!("{inner:?}"); + match inner { Event::Coordinator(CoordinatorEvent { event, reply_tx }) => { let status = self.handle_coordinator_event(event, reply_tx).await?; @@ -406,6 +409,14 @@ impl Daemon { } }, } + + let elapsed = start.elapsed(); + if elapsed > Duration::from_millis(100) { + tracing::warn!( + "Daemon took {}ms for handling event: {event_debug}", + elapsed.as_millis() + ); + } } if let Some(mut connection) = self.coordinator_connection.take() {