From 7dff4a89fdf185e6d56a273d67dd772879c17ee0 Mon Sep 17 00:00:00 2001 From: Bora Oztekin Date: Tue, 11 Aug 2026 18:12:40 +0000 Subject: [PATCH] fix(http-invocation): remove account ID from request latency metric Signed-off-by: Bora Oztekin --- .../crates/server/src/metrics/mod.rs | 34 +++++++++++++++++-- .../crates/server/src/routes/post_pexec.rs | 1 - 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/invocation-plane-services/http-invocation/crates/server/src/metrics/mod.rs b/src/invocation-plane-services/http-invocation/crates/server/src/metrics/mod.rs index b33311e1b..e21937dc9 100644 --- a/src/invocation-plane-services/http-invocation/crates/server/src/metrics/mod.rs +++ b/src/invocation-plane-services/http-invocation/crates/server/src/metrics/mod.rs @@ -231,13 +231,11 @@ pub fn init_metrics(settings: &MetricsSettings) -> anyhow::Result<()> { pub fn record_invocation_end( function_id: String, function_version_id: String, - nca_id: String, start_time: SystemTime, ) { let labels = [ ("function_id", function_id), ("function_version_id", function_version_id), - ("nca_id", nca_id), ]; if let Ok(latency) = start_time.elapsed() { histogram!(FUNCTION_REQUEST_LATENCY.name, &labels).record(latency); @@ -356,6 +354,38 @@ mod tests { use metrics_util::debugging::{DebugValue, DebuggingRecorder}; use metrics_util::MetricKind; + #[test] + fn invocation_latency_omits_nca_id() { + let recorder = DebuggingRecorder::new(); + let snapshotter = recorder.snapshotter(); + + metrics::with_local_recorder(&recorder, || { + record_invocation_end( + "function-id".to_string(), + "function-version-id".to_string(), + SystemTime::now() - Duration::from_secs(1), + ); + }); + + let metrics = snapshotter.snapshot().into_vec(); + let (key, _, _, _) = metrics + .iter() + .find(|(key, _, _, _)| { + key.kind() == MetricKind::Histogram + && key.key().name() == FUNCTION_REQUEST_LATENCY.name + }) + .expect("function request latency should be recorded"); + + assert!(key + .key() + .labels() + .any(|label| label.key() == "function_id" && label.value() == "function-id")); + assert!(key.key().labels().any(|label| { + label.key() == "function_version_id" && label.value() == "function-version-id" + })); + assert!(!key.key().labels().any(|label| label.key() == "nca_id")); + } + #[test] fn application_error_uses_empty_function_id_when_context_is_missing() { let recorder = DebuggingRecorder::new(); diff --git a/src/invocation-plane-services/http-invocation/crates/server/src/routes/post_pexec.rs b/src/invocation-plane-services/http-invocation/crates/server/src/routes/post_pexec.rs index fa3c4ca7d..cc1fdc741 100644 --- a/src/invocation-plane-services/http-invocation/crates/server/src/routes/post_pexec.rs +++ b/src/invocation-plane-services/http-invocation/crates/server/src/routes/post_pexec.rs @@ -536,7 +536,6 @@ pub(crate) async fn handle_streaming_response( metrics::record_invocation_end( function_id.to_string(), function_version_id.to_string(), - nca_id.to_string(), start_time, ); }),