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::runtime;
|
||||||
use tokio_metrics::TaskMonitor;
|
use tokio_metrics::TaskMonitor;
|
||||||
@@ -19,8 +19,9 @@ pub struct Metrics {
|
|||||||
runtime_intervals: std::sync::Mutex<Option<RuntimeIntervals>>,
|
runtime_intervals: std::sync::Mutex<Option<RuntimeIntervals>>,
|
||||||
|
|
||||||
// TODO: move stats
|
// TODO: move stats
|
||||||
|
pub requests_count: AtomicU64,
|
||||||
|
pub requests_handle_finished: AtomicU64,
|
||||||
pub requests_handle_active: AtomicU32,
|
pub requests_handle_active: AtomicU32,
|
||||||
pub requests_handle_finished: AtomicU32,
|
|
||||||
pub requests_panic: AtomicU32,
|
pub requests_panic: AtomicU32,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,8 +49,9 @@ impl Metrics {
|
|||||||
#[cfg(tokio_unstable)]
|
#[cfg(tokio_unstable)]
|
||||||
runtime_intervals: std::sync::Mutex::new(runtime_intervals),
|
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_active: AtomicU32::new(0),
|
||||||
requests_handle_finished: AtomicU32::new(0),
|
|
||||||
requests_panic: 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_core::{Result, debug, debug_error, debug_warn, err, error, trace};
|
||||||
use tuwunel_service::Services;
|
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(
|
pub(crate) async fn handle(
|
||||||
State(services): State<Arc<Services>>,
|
State(services): State<Arc<Services>>,
|
||||||
req: http::Request<axum::body::Body>,
|
req: http::Request<axum::body::Body>,
|
||||||
|
|||||||
Reference in New Issue
Block a user