From 2cf4d5ef353a0264df280644b26fa7d8fb42d406 Mon Sep 17 00:00:00 2001 From: jif-oai Date: Thu, 19 Mar 2026 15:48:02 +0000 Subject: [PATCH] chore: add metrics for profile (#15180) --- codex-rs/otel/src/events/session_telemetry.rs | 4 ++++ codex-rs/otel/src/metrics/names.rs | 1 + 2 files changed, 5 insertions(+) diff --git a/codex-rs/otel/src/events/session_telemetry.rs b/codex-rs/otel/src/events/session_telemetry.rs index e2c86a6e6..42fd6e50c 100644 --- a/codex-rs/otel/src/events/session_telemetry.rs +++ b/codex-rs/otel/src/events/session_telemetry.rs @@ -9,6 +9,7 @@ use crate::metrics::MetricsError; use crate::metrics::Result as MetricsResult; use crate::metrics::names::API_CALL_COUNT_METRIC; use crate::metrics::names::API_CALL_DURATION_METRIC; +use crate::metrics::names::PROFILE_USAGE_METRIC; use crate::metrics::names::RESPONSES_API_ENGINE_IAPI_TBT_DURATION_METRIC; use crate::metrics::names::RESPONSES_API_ENGINE_IAPI_TTFT_DURATION_METRIC; use crate::metrics::names::RESPONSES_API_ENGINE_SERVICE_TBT_DURATION_METRIC; @@ -321,6 +322,9 @@ impl SessionTelemetry { mcp_servers: Vec<&str>, active_profile: Option, ) { + if active_profile.is_some() { + self.counter(PROFILE_USAGE_METRIC, /*inc*/ 1, &[]); + } log_and_trace_event!( self, common: { diff --git a/codex-rs/otel/src/metrics/names.rs b/codex-rs/otel/src/metrics/names.rs index 569cdc825..58a82afea 100644 --- a/codex-rs/otel/src/metrics/names.rs +++ b/codex-rs/otel/src/metrics/names.rs @@ -25,6 +25,7 @@ pub const TURN_TTFM_DURATION_METRIC: &str = "codex.turn.ttfm.duration_ms"; pub const TURN_NETWORK_PROXY_METRIC: &str = "codex.turn.network_proxy"; pub const TURN_TOOL_CALL_METRIC: &str = "codex.turn.tool.call"; pub const TURN_TOKEN_USAGE_METRIC: &str = "codex.turn.token_usage"; +pub const PROFILE_USAGE_METRIC: &str = "codex.profile.usage"; /// Total runtime of a startup prewarm attempt until it completes, tagged by final status. pub const STARTUP_PREWARM_DURATION_METRIC: &str = "codex.startup_prewarm.duration_ms"; /// Age of the startup prewarm attempt when the first real turn resolves it, tagged by outcome.