From 026996a2cc14a719254bbd00f461cd253c97ae59 Mon Sep 17 00:00:00 2001 From: Noah Kennedy Date: Tue, 22 Oct 2024 13:52:51 -0500 Subject: [PATCH] helper: add metrics for agg job timings --- crates/daphne-server/src/metrics.rs | 6 ++++++ crates/daphne-server/src/router/helper.rs | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/crates/daphne-server/src/metrics.rs b/crates/daphne-server/src/metrics.rs index 79623eae..4df745ee 100644 --- a/crates/daphne-server/src/metrics.rs +++ b/crates/daphne-server/src/metrics.rs @@ -10,6 +10,7 @@ pub trait DaphneServiceMetrics: DaphneMetrics { fn count_http_status_code(&self, status_code: u16); fn daphne(&self) -> &dyn DaphneMetrics; fn auth_method_inc(&self, method: AuthMethod); + fn aggregate_job_latency(&self, time: std::time::Duration); } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] @@ -27,6 +28,7 @@ mod prometheus { DapError, }; use prometheus::{register_int_counter_vec_with_registry, IntCounterVec, Registry}; + use std::time::Duration; impl DaphneMetrics for DaphnePromServiceMetrics { fn report_inc_by(&self, status: ReportStatus, val: u64) { @@ -76,6 +78,10 @@ mod prometheus { fn daphne(&self) -> &dyn DaphneMetrics { self } + + fn aggregate_job_latency(&self, _time: Duration) { + // unimplemented by default due to elevated cardinality + } } #[derive(Clone)] diff --git a/crates/daphne-server/src/router/helper.rs b/crates/daphne-server/src/router/helper.rs index e1086381..403697bd 100644 --- a/crates/daphne-server/src/router/helper.rs +++ b/crates/daphne-server/src/router/helper.rs @@ -50,12 +50,19 @@ async fn agg_job( resource::AggregationJobId, >, ) -> AxumDapResponse { + let timer = std::time::Instant::now(); + let resp = helper::handle_agg_job_init_req( &*app, req, fetch_replay_protection_override(app.kv()).await, ) .await; + + let elapsed = timer.elapsed(); + + app.server_metrics().aggregate_job_latency(elapsed); + AxumDapResponse::from_result_with_success_code(resp, app.server_metrics(), StatusCode::CREATED) }