Log how long it takes to handle each RPC message

This commit is contained in:
Max Brunsfeld 2023-05-18 12:24:07 -07:00
parent bd29812391
commit c71b59b248

View file

@ -51,7 +51,7 @@ use std::{
atomic::{AtomicBool, Ordering::SeqCst}, atomic::{AtomicBool, Ordering::SeqCst},
Arc, Arc,
}, },
time::Duration, time::{Duration, Instant},
}; };
use tokio::sync::{watch, Semaphore}; use tokio::sync::{watch, Semaphore};
use tower::ServiceBuilder; use tower::ServiceBuilder;
@ -397,10 +397,16 @@ impl Server {
"message received" "message received"
); );
}); });
let start_time = Instant::now();
let future = (handler)(*envelope, session); let future = (handler)(*envelope, session);
async move { async move {
if let Err(error) = future.await { let result = future.await;
tracing::error!(%error, "error handling message"); let duration_ms = start_time.elapsed().as_micros() as f64 / 1000.0;
match result {
Err(error) => {
tracing::error!(%error, ?duration_ms, "error handling message")
}
Ok(()) => tracing::info!(?duration_ms, "finished handling message"),
} }
} }
.instrument(span) .instrument(span)