Add unique id counter to request tracing span. (fixes #112)
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -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<Option<RuntimeIntervals>>,
|
||||
|
||||
// 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),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Arc<Services>>,
|
||||
req: http::Request<axum::body::Body>,
|
||||
|
||||
Reference in New Issue
Block a user