Tiny add router e2e duration histogram (#14892)
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user