From cbe34affa38775f0d858a46472129a8a5fd2fc6d Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 22 Jul 2025 21:11:25 +0000 Subject: [PATCH] Add unique id counter to request tracing span. (fixes #112) Signed-off-by: Jason Volk --- src/core/metrics/mod.rs | 8 +++++--- src/router/request.rs | 13 ++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/core/metrics/mod.rs b/src/core/metrics/mod.rs index 0ec5fb4c..95588caa 100644 --- a/src/core/metrics/mod.rs +++ b/src/core/metrics/mod.rs @@ -1,4 +1,4 @@ -use std::sync::atomic::AtomicU32; +use std::sync::atomic::{AtomicU32, AtomicU64}; use tokio::runtime; use tokio_metrics::TaskMonitor; @@ -19,8 +19,9 @@ pub struct Metrics { runtime_intervals: std::sync::Mutex>, // TODO: move stats + pub requests_count: AtomicU64, + pub requests_handle_finished: AtomicU64, pub requests_handle_active: AtomicU32, - pub requests_handle_finished: AtomicU32, pub requests_panic: AtomicU32, } @@ -48,8 +49,9 @@ impl Metrics { #[cfg(tokio_unstable)] runtime_intervals: std::sync::Mutex::new(runtime_intervals), + requests_count: AtomicU64::new(0), + requests_handle_finished: AtomicU64::new(0), requests_handle_active: AtomicU32::new(0), - requests_handle_finished: AtomicU32::new(0), requests_panic: AtomicU32::new(0), } } diff --git a/src/router/request.rs b/src/router/request.rs index 272a966f..f3c1e8be 100644 --- a/src/router/request.rs +++ b/src/router/request.rs @@ -15,7 +15,18 @@ use tracing::Span; use tuwunel_core::{Result, debug, debug_error, debug_warn, err, error, trace}; use tuwunel_service::Services; -#[tracing::instrument(name = "request", level = "debug", skip_all)] +#[tracing::instrument( + name = "request", + level = "debug", + skip_all, + fields( + id = %services + .server + .metrics + .requests_count + .fetch_add(1, Ordering::Relaxed) + ) +)] pub(crate) async fn handle( State(services): State>, req: http::Request,