Tiny add router e2e duration histogram (#14892)

This commit is contained in:
fzyzcjy
2025-12-12 13:18:13 +08:00
committed by GitHub
parent 22fe5da13e
commit b2b5bdb06e
2 changed files with 8 additions and 8 deletions
+2
View File
@@ -334,7 +334,9 @@ impl<B> OnResponse<B> for ResponseLogger {
let status = response.status(); let status = response.status();
let status_code = status.as_u16(); let status_code = status.as_u16();
// TODO support `route` information
RouterMetrics::record_http_status_code(status_code); RouterMetrics::record_http_status_code(status_code);
RouterMetrics::record_request_duration(latency);
// Record these in the span for structured logging/observability tools // Record these in the span for structured logging/observability tools
span.record("status_code", status_code); span.record("status_code", status_code);
@@ -30,7 +30,7 @@ pub fn init_metrics() {
); );
describe_histogram!( describe_histogram!(
"sgl_router_request_duration_seconds", "sgl_router_request_duration_seconds",
"Request duration in seconds by route" "Request duration in seconds"
); );
describe_counter!( describe_counter!(
"sgl_router_request_errors_total", "sgl_router_request_errors_total",
@@ -314,10 +314,8 @@ impl RouterMetrics {
.increment(1); .increment(1);
} }
pub fn record_request_duration(route: &str, duration: Duration) { pub fn record_request_duration(duration: Duration) {
histogram!("sgl_router_request_duration_seconds", histogram!("sgl_router_request_duration_seconds")
"route" => route.to_string()
)
.record(duration.as_secs_f64()); .record(duration.as_secs_f64());
} }
@@ -920,7 +918,7 @@ mod tests {
#[test] #[test]
fn test_metrics_static_methods() { fn test_metrics_static_methods() {
RouterMetrics::record_request("/generate"); RouterMetrics::record_request("/generate");
RouterMetrics::record_request_duration("/generate", Duration::from_millis(100)); RouterMetrics::record_request_duration(Duration::from_millis(100));
RouterMetrics::record_request_error("/generate", "timeout"); RouterMetrics::record_request_error("/generate", "timeout");
RouterMetrics::record_retry("/generate"); RouterMetrics::record_retry("/generate");
@@ -1079,7 +1077,7 @@ mod tests {
RouterMetrics::set_worker_load("worker", 0); RouterMetrics::set_worker_load("worker", 0);
RouterMetrics::set_worker_load("worker", usize::MAX); RouterMetrics::set_worker_load("worker", usize::MAX);
RouterMetrics::record_request_duration("route", Duration::from_nanos(1)); RouterMetrics::record_request_duration(Duration::from_nanos(1));
RouterMetrics::record_request_duration("route", Duration::from_secs(86400)); RouterMetrics::record_request_duration(Duration::from_secs(86400));
} }
} }