From 7e49c3a3c63163d54f5ccb630f8066b7352c770a Mon Sep 17 00:00:00 2001 From: kdletters Date: Wed, 22 Apr 2026 18:43:09 +0800 Subject: [PATCH] style: format api server tracing layer --- server-rs/crates/api-server/src/app.rs | 68 ++++++++++++++------------ 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/server-rs/crates/api-server/src/app.rs b/server-rs/crates/api-server/src/app.rs index faf915ff..de2cefdc 100644 --- a/server-rs/crates/api-server/src/app.rs +++ b/server-rs/crates/api-server/src/app.rs @@ -693,39 +693,47 @@ pub fn build_router(state: AppState) -> Router { ) }) .on_request(DefaultOnRequest::new().level(Level::INFO)) - .on_response(move |response: &axum::response::Response, latency: std::time::Duration, span: &Span| { - let latency_ms = latency.as_millis().min(u64::MAX as u128) as u64; - let status = response.status().as_u16(); - let slow_request = latency_ms >= slow_request_threshold_ms; - span.record("status", status); - span.record("latency_ms", latency_ms); - if slow_request { - warn!( + .on_response( + move |response: &axum::response::Response, + latency: std::time::Duration, + span: &Span| { + let latency_ms = latency.as_millis().min(u64::MAX as u128) as u64; + let status = response.status().as_u16(); + let slow_request = latency_ms >= slow_request_threshold_ms; + span.record("status", status); + span.record("latency_ms", latency_ms); + if slow_request { + warn!( + parent: span, + status, + latency_ms, + slow_request = true, + "http request completed slowly" + ); + } else { + info!( + parent: span, + status, + latency_ms, + slow_request = false, + "http request completed" + ); + } + }, + ) + .on_failure( + |failure: ServerErrorsFailureClass, + latency: std::time::Duration, + span: &Span| { + let latency_ms = latency.as_millis().min(u64::MAX as u128) as u64; + error!( parent: span, - status, latency_ms, - slow_request = true, - "http request completed slowly" + failure = %failure, + "http request failed" ); - } else { - info!( - parent: span, - status, - latency_ms, - slow_request = false, - "http request completed" - ); - } - }) - .on_failure(|failure: ServerErrorsFailureClass, latency: std::time::Duration, span: &Span| { - let latency_ms = latency.as_millis().min(u64::MAX as u128) as u64; - error!( - parent: span, - latency_ms, - failure = %failure, - "http request failed" - ); - }), + }, + ), ) // request_id 中间件先进入请求链,确保后续 tracing、错误处理和响应头层都能复用同一份请求标识。 .layer(middleware::from_fn(attach_request_context))