codex-rs/otel/src/provider.rs (26 lines):
	- line 5: use crate::metrics::MetricsClient;
	- line 66: pub metrics: Option<MetricsClient>,
	- line 229: Some(MetricsClient::new(config)?)
	- line 341: pub fn metrics(&self) -> Option<&MetricsClient> {
	- line 669: assert!(is_log_export_target("codex_otel.log_only"));
	- line 670: assert!(is_log_export_target("codex_otel.network_proxy"));
	- line 671: assert!(!is_log_export_target("codex_otel.trace_safe"));
	- line 672: assert!(!is_log_export_target("codex_otel.trace_safe.debug"));
	- line 677: assert!(is_trace_safe_target("codex_otel.trace_safe"));
	- line 678: assert!(is_trace_safe_target("codex_otel.trace_safe.summary"));
	- line 679: assert!(!is_trace_safe_target("codex_otel.log_only"));
	- line 680: assert!(!is_trace_safe_target("codex_otel.network_proxy"));
	- line 686: crate::metrics::install_global(MetricsClient::new(MetricsConfig::in_memory(
	- line 696: crate::metrics::install_global(MetricsClient::new(MetricsConfig::in_memory(
	- line 730: let metrics = MetricsClient::new(config)?;
	- line 732: metrics.counter(API_CALL_COUNT_METRIC, /*inc*/ 1, &[])?;
	- line 733: metrics.record_duration(API_CALL_DURATION_METRIC, Duration::from_millis(100), &[])?;
	- line 734: metrics.counter("codex.conversation.turn.count", /*inc*/ 1, &[])?;
	- line 735: metrics.record_duration(
	- line 740: metrics.record_duration(
	- line 745: metrics.record_duration(
	- line 750: metrics.counter(TOOL_CALL_COUNT_METRIC, /*inc*/ 1, &[])?;
	- line 751: metrics.record_duration(TOOL_CALL_DURATION_METRIC, Duration::from_millis(25), &[])?;
	- line 752: metrics.counter(TURN_COST_MICROUSD_METRIC, /*inc*/ 1, &[])?;
	- line 753: metrics.histogram(TURN_TOKEN_USAGE_METRIC, /*value*/ 100, &[])?;
	- line 754: metrics.counter("codex.turns", /*inc*/ 1, &[])?;


codex-rs/otel/src/trace_context.rs (21 lines):
	- line 47: traceparent: headers.remove("traceparent"),
	- line 54: /// Existing `traceparent` and `tracestate` values are replaced so callers can
	- line 61: match trace.traceparent {
	- line 62: Some(traceparent) => {
	- line 63: if let Ok(value) = http::HeaderValue::from_str(&traceparent) {
	- line 64: headers.insert("traceparent", value);
	- line 68: headers.remove("traceparent");
	- line 107: context_from_trace_headers(trace.traceparent.as_deref(), trace.tracestate.as_deref())
	- line 123: pub fn traceparent_context_from_env() -> Option<Context> {
	- line 125: .get_or_init(load_traceparent_context)
	- line 130: traceparent: Option<&str>,
	- line 133: let traceparent = traceparent?;
	- line 135: headers.insert("traceparent".to_string(), traceparent.to_string());
	- line 147: fn load_traceparent_context() -> Option<Context> {
	- line 148: let traceparent = env::var(TRACEPARENT_ENV_VAR).ok()?;
	- line 151: match context_from_trace_headers(Some(&traceparent), tracestate.as_deref()) {
	- line 355: traceparent: Some(format!("00-{trace_id}-{span_id}-01")),
	- line 371: fn invalid_traceparent_returns_none() {
	- line 373: context_from_trace_headers(Some("not-a-traceparent"), /*tracestate*/ None).is_none()
	- line 378: fn missing_traceparent_returns_none() {
	- line 381: traceparent: None,


codex-rs/core/src/session/mod.rs (16 lines):
	- line 90: use codex_otel::current_span_trace_id;
	- line 91: use codex_otel::current_span_w3c_trace_context;
	- line 92: use codex_otel::set_parent_from_w3c_trace_context;
	- line 322: use codex_otel::SessionTelemetry;
	- line 323: use codex_otel::THREAD_STARTED_METRIC;
	- line 324: use codex_otel::TelemetryAuthMode;
	- line 489: if codex_otel::context_from_w3c_trace_context(&trace).is_some() {
	- line 1243: #[instrument(name = "session.flush_rollout", level = "trace", skip_all)]
	- line 1348: #[tracing::instrument(
	- line 1515: #[instrument(
	- line 1632: #[tracing::instrument(level = "trace", skip_all)]
	- line 3250: #[tracing::instrument(level = "trace", skip_all, fields(item_count = items.len()))]
	- line 3406: #[tracing::instrument(name = "step_context.capture", level = "info", skip_all)]
	- line 3752: #[tracing::instrument(level = "trace", skip_all, fields(item_count = items.len()))]
	- line 4025: #[tracing::instrument(level = "trace", skip_all, fields(item_count = items.len()))]
	- line 4146: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/tools/spec_plan.rs (15 lines):
	- line 122: #[instrument(level = "trace", skip_all)]
	- line 283: #[instrument(level = "trace", skip_all)]
	- line 311: #[instrument(level = "trace", skip_all)]
	- line 343: #[instrument(level = "trace", skip_all)]
	- line 362: #[instrument(level = "trace", skip_all)]
	- line 541: #[instrument(level = "trace", skip_all)]
	- line 606: #[instrument(level = "trace", skip_all)]
	- line 910: #[instrument(level = "trace", skip_all, fields(tool_spec_count = specs.len()))]
	- line 984: #[instrument(level = "trace", skip_all)]
	- line 1085: #[instrument(level = "trace", skip_all)]
	- line 1133: #[instrument(level = "trace", skip_all)]
	- line 1142: #[instrument(level = "trace", skip_all)]
	- line 1274: #[instrument(level = "trace", skip_all)]
	- line 1363: #[instrument(level = "trace", skip_all, fields(dynamic_tool_count = dynamic_tools.len()))]
	- line 1396: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/session/turn.rs (13 lines):
	- line 605: #[instrument(level = "trace", skip_all)]
	- line 628: #[instrument(level = "trace", skip_all)]
	- line 773: #[instrument(level = "trace", skip_all)]
	- line 913: #[tracing::instrument(
	- line 973: #[tracing::instrument(
	- line 1032: #[instrument(level = "trace", skip_all)]
	- line 1194: #[instrument(
	- line 1332: #[instrument(level = "trace", skip_all)]
	- line 1354: #[instrument(level = "trace",
	- line 1469: #[instrument(level = "trace", skip_all)]
	- line 1509: #[instrument(level = "trace",
	- line 2158: #[instrument(level = "trace", skip_all)]
	- line 2200: #[instrument(level = "trace",


codex-rs/code-mode-host/src/grpc/mod.rs (12 lines):
	- line 38: .get("traceparent")
	- line 40: .map(|traceparent| W3cTraceContext {
	- line 41: traceparent: Some(traceparent.to_string()),
	- line 69: #[tracing::instrument(
	- line 133: callback_traceparent: Option<String>,
	- line 160: callback_traceparent,
	- line 213: #[tracing::instrument(
	- line 306: codex_otel::set_parent_from_w3c_trace_context(&open_session_span, trace);
	- line 376: codex_otel::set_parent_from_w3c_trace_context(&execute_span, trace);
	- line 378: let callback_traceparent =
	- line 379: codex_otel::span_w3c_trace_context(&execute_span).and_then(|trace| trace.traceparent);
	- line 381: self.execute_request(request, callback_traceparent)


codex-rs/exec-server/src/rpc.rs (12 lines):
	- line 518: #[tracing::instrument(
	- line 552: #[tracing::instrument(
	- line 621: trace: codex_otel::current_span_w3c_trace_context(),
	- line 917: .with_filter(filter_fn(codex_otel::OtelProvider::trace_export_filter)),
	- line 1228: .with_filter(filter_fn(codex_otel::OtelProvider::trace_export_filter)),
	- line 1233: let expected_trace = codex_otel::span_w3c_trace_context(&parent_span)
	- line 1266: let expected_traceparent = expected_trace
	- line 1267: .traceparent
	- line 1269: .expect("parent traceparent");
	- line 1270: let traceparent = trace.traceparent.as_deref().expect("request traceparent");
	- line 1271: let expected_parts = expected_traceparent.split('-').collect::<Vec<_>>();
	- line 1272: let parts = traceparent.split('-').collect::<Vec<_>>();


codex-rs/ext/goal/src/metrics.rs (11 lines):
	- line 1: use codex_otel::GOAL_BLOCKED_METRIC;
	- line 2: use codex_otel::GOAL_BUDGET_LIMITED_METRIC;
	- line 3: use codex_otel::GOAL_COMPLETED_METRIC;
	- line 4: use codex_otel::GOAL_CREATED_METRIC;
	- line 5: use codex_otel::GOAL_DURATION_SECONDS_METRIC;
	- line 6: use codex_otel::GOAL_RESUMED_METRIC;
	- line 7: use codex_otel::GOAL_TOKEN_COUNT_METRIC;
	- line 8: use codex_otel::GOAL_USAGE_LIMITED_METRIC;
	- line 9: use codex_otel::MetricsClient;
	- line 13: metrics_client: Option<MetricsClient>,
	- line 17: pub(crate) fn new(metrics_client: Option<MetricsClient>) -> Self {


codex-rs/rollout/src/persistence_metrics.rs (10 lines):
	- line 5: use codex_otel::MetricsClient;
	- line 309: metrics: Option<MetricsClient>,
	- line 316: let metrics = codex_otel::global();
	- line 340: let _ = metrics.histogram(
	- line 351: let _ = metrics.counter(
	- line 363: let _ = metrics.counter(
	- line 369: let _ = metrics.counter(
	- line 387: let _ = metrics.counter(
	- line 401: let _ = metrics.histogram(
	- line 415: fn enabled_metrics(&self) -> Option<&MetricsClient> {


codex-rs/core/src/guardian/metrics.rs (9 lines):
	- line 10: use codex_otel::GUARDIAN_REVIEW_COUNT_METRIC;
	- line 11: use codex_otel::GUARDIAN_REVIEW_DURATION_METRIC;
	- line 12: use codex_otel::GUARDIAN_REVIEW_TOKEN_USAGE_METRIC;
	- line 13: use codex_otel::GUARDIAN_REVIEW_TTFT_DURATION_METRIC;
	- line 14: use codex_otel::SessionTelemetry;
	- line 15: use codex_otel::sanitize_metric_tag_value;
	- line 243: use codex_otel::MetricsClient;
	- line 244: use codex_otel::MetricsConfig;
	- line 258: let metrics = MetricsClient::new(


codex-rs/core/src/windows_sandbox.rs (9 lines):
	- line 9: use codex_otel::sanitize_metric_tag_value;
	- line 329: let Some(metrics) = codex_otel::global() else {
	- line 333: let _ = metrics.record_duration(
	- line 342: let _ = metrics.counter(
	- line 355: let Some(metrics) = codex_otel::global() else {
	- line 359: let _ = metrics.record_duration(
	- line 368: let _ = metrics.counter(
	- line 403: let _ = metrics.counter(metric_name, /*inc*/ 1, &failure_tags);
	- line 406: let _ = metrics.counter(


codex-rs/otel/src/events/session_telemetry.rs (9 lines):
	- line 8: use crate::metrics::MetricsClient;
	- line 118: pub(crate) metrics: Option<MetricsClient>,
	- line 154: pub fn with_metrics(mut self, metrics: MetricsClient) -> Self {
	- line 160: pub fn with_metrics_without_metadata_tags(mut self, metrics: MetricsClient) -> Self {
	- line 167: let metrics = MetricsClient::new(config)?;
	- line 185: metrics.counter(name, inc, &tags)
	- line 200: metrics.histogram(name, value, &tags)
	- line 215: metrics.record_duration(name, duration, &tags)
	- line 230: metrics.record_duration_ms_f64(name, duration_ms, &tags)


codex-rs/exec-server/src/telemetry.rs (8 lines):
	- line 6: use codex_otel::MetricsClient;
	- line 73: metrics: MetricsClient,
	- line 107: pub fn new(metrics: MetricsClient) -> Self {
	- line 174: .or_else(codex_otel::global)
	- line 180: let _ = metrics.record_duration("codex.shell_snapshot.duration_ms", duration, &tags);
	- line 184: let _ = metrics.counter("codex.shell_snapshot", /*inc*/ 1, &tags);
	- line 328: fn register_active_gauges(metrics: &MetricsClient, active: &Arc<Mutex<ActiveCounts>>) {
	- line 355: metrics: &MetricsClient,


codex-rs/exec-server/src/client.rs (8 lines):
	- line 1862: .with_filter(filter_fn(codex_otel::OtelProvider::trace_export_filter)),
	- line 1867: let expected_trace = codex_otel::span_w3c_trace_context(&parent_span)
	- line 1901: let expected_traceparent = expected_trace
	- line 1902: .traceparent
	- line 1904: .expect("parent traceparent");
	- line 1905: let traceparent = trace.traceparent.as_deref().expect("request traceparent");
	- line 1906: let expected_parts = expected_traceparent.split('-').collect::<Vec<_>>();
	- line 1907: let parts = traceparent.split('-').collect::<Vec<_>>();


codex-rs/code-mode/src/grpc_session/mod.rs (8 lines):
	- line 53: fn inject_span_traceparent<T>(request: &mut tonic::Request<T>, span: &tracing::Span) {
	- line 54: if let Some(traceparent) =
	- line 55: codex_otel::span_w3c_trace_context(span).and_then(|trace| trace.traceparent)
	- line 56: && let Ok(traceparent) = traceparent.parse()
	- line 58: request.metadata_mut().insert("traceparent", traceparent);
	- line 96: #[tracing::instrument(name = "code_mode.grpc.open_binding", level = "info", skip_all)]
	- line 118: inject_span_traceparent(&mut open_session_request, &open_session_span);
	- line 162: inject_span_traceparent(&mut request, &subscribe_span);


codex-rs/otel/src/metrics/client.rs (8 lines):
	- line 102: pub(super) struct MetricsClientInner {
	- line 114: impl MetricsClientInner {
	- line 314: pub struct MetricsClient {
	- line 316: pub(super) inner: Arc<MetricsClientInner>,
	- line 318: pub(super) active: Option<Arc<RwLock<Arc<MetricsClientInner>>>>,
	- line 321: impl MetricsClient {
	- line 369: inner: Arc::new(MetricsClientInner {
	- line 384: pub(super) fn active_inner(&self) -> Arc<MetricsClientInner> {


codex-rs/app-server/src/request_processors/apps_processor/installed.rs (7 lines):
	- line 174: if let Some(metrics) = codex_otel::global() {
	- line 212: metrics: &codex_otel::MetricsClient,
	- line 229: let _ = metrics.record_duration(
	- line 242: let _ = metrics.histogram(
	- line 248: let _ = metrics.histogram(
	- line 253: let _ = metrics.histogram(
	- line 259: let _ = metrics.record_duration(


codex-rs/core/src/tasks/mod.rs (7 lines):
	- line 43: use codex_otel::SessionTelemetry;
	- line 44: use codex_otel::TURN_E2E_DURATION_METRIC;
	- line 45: use codex_otel::TURN_MEMORY_METRIC;
	- line 46: use codex_otel::TURN_NETWORK_PROXY_METRIC;
	- line 47: use codex_otel::TURN_TOKEN_USAGE_METRIC;
	- line 48: use codex_otel::TURN_TOOL_CALL_METRIC;
	- line 49: use codex_otel::TURN_UNIFIED_EXEC_RUNNING_PROCESSES_METRIC;


codex-rs/codex-mcp/src/rmcp_client.rs (7 lines):
	- line 418: #[instrument(level = "trace", skip_all, fields(server_name = %server_name))]
	- line 621: #[instrument(level = "trace", skip_all, fields(server_name = %server_name))]
	- line 873: #[instrument(level = "trace", skip_all, fields(server_name = %server_name))]
	- line 985: let Some(metrics) = codex_otel::global() else {
	- line 1002: let _ = metrics.counter("codex.mcp.protocol_discovery", /*inc*/ 1, &tags);
	- line 1003: let _ = metrics.record_duration(
	- line 1069: #[instrument(level = "trace", skip_all, fields(server_name = %server_name))]


codex-rs/rollout/src/sqlite_metrics.rs (7 lines):
	- line 4: use codex_otel::ORIGINATOR_TAG;
	- line 5: use codex_otel::bounded_originator_tag_value;
	- line 33: metrics: codex_otel::MetricsClient,
	- line 40: let _ = self.metrics.counter(name, inc, &tags);
	- line 49: _ => self.metrics.histogram(name, value, &tags),
	- line 55: let _ = self.metrics.record_duration(name, duration, &tags);
	- line 59: pub(crate) fn recorder(metrics: codex_otel::MetricsClient, originator: &str) -> DbTelemetryHandle {


codex-rs/core/src/hook_runtime.rs (6 lines):
	- line 29: use codex_otel::HOOK_RUN_DURATION_METRIC;
	- line 30: use codex_otel::HOOK_RUN_METRIC;
	- line 123: #[instrument(level = "trace", skip_all)]
	- line 374: #[instrument(level = "trace", skip_all)]
	- line 453: #[instrument(level = "trace", skip_all)]
	- line 591: #[instrument(level = "trace", skip_all)]


codex-rs/codex-api/src/endpoint/responses_websocket.rs (6 lines):
	- line 176: traceparent: Option<String>,
	- line 229: #[instrument(
	- line 261: traceparent: client_metadata
	- line 391: #[instrument(
	- line 866: traceparent = context.traceparent.as_deref().unwrap_or_default(),
	- line 979: "traceparent".to_string(),


codex-rs/windows-sandbox-rs/src/wfp_setup.rs (6 lines):
	- line 4: use codex_otel::OtelExporter;
	- line 5: use codex_otel::OtelProvider;
	- line 6: use codex_otel::OtelSettings;
	- line 7: use codex_otel::StatsigMetricsSettings;
	- line 77: metrics.counter(
	- line 92: metrics.counter(WFP_SETUP_FAILURE_METRIC, /*inc*/ 1, &tags)?;


codex-rs/app-server/src/app_server_tracing.rs (6 lines):
	- line 16: use codex_otel::set_parent_from_context;
	- line 17: use codex_otel::set_parent_from_w3c_trace_context;
	- line 18: use codex_otel::traceparent_context_from_env;
	- line 46: trace.traceparent.as_ref()?;
	- line 48: traceparent: trace.traceparent.clone(),
	- line 139: } else if let Some(context) = traceparent_context_from_env() {


codex-rs/core/src/otel_init.rs (6 lines):
	- line 6: use codex_otel::OtelExporter;
	- line 7: use codex_otel::OtelHttpProtocol;
	- line 8: use codex_otel::OtelProvider;
	- line 9: use codex_otel::OtelSettings;
	- line 10: use codex_otel::OtelTlsConfig as OtelTlsSettings;
	- line 101: let _ = codex_otel::record_process_start_once(metrics, originator);


codex-rs/rollout/src/compression.rs (6 lines):
	- line 940: let Some(metrics) = codex_otel::global() else {
	- line 943: let _ = metrics.counter(name, /*inc*/ 1, tags);
	- line 947: let Some(metrics) = codex_otel::global() else {
	- line 950: let _ = metrics.histogram(name, value, tags);
	- line 954: let Some(metrics) = codex_otel::global() else {
	- line 957: let _ = metrics.record_duration(name, duration, tags);


codex-rs/core-plugins/src/loaded_cache_metrics.rs (6 lines):
	- line 19: let Some(metrics) = codex_otel::global() else {
	- line 27: let _ = metrics.counter(
	- line 36: if let Some(metrics) = codex_otel::global() {
	- line 37: let _ = metrics.record_duration(name, duration, &[]);
	- line 42: if let Some(metrics) = codex_otel::global() {
	- line 43: let _ = metrics.counter(


codex-rs/thread-store/src/local/rollout_migration/telemetry.rs (5 lines):
	- line 54: let Some(metrics) = codex_otel::global() else {
	- line 69: let _ = metrics.counter(THREAD_METRIC, /*inc*/ 1, &tags);
	- line 93: let _ = metrics.counter(RUN_METRIC, /*inc*/ 1, &tags);
	- line 94: let _ = metrics.histogram(RUN_DURATION_METRIC, duration_ms, &tags);
	- line 95: let _ = metrics.histogram(RUN_IO_BYTES_METRIC, io_bytes, &tags);


codex-rs/ext/skills/src/render_observability.rs (5 lines):
	- line 2: use codex_otel::THREAD_SKILLS_DESCRIPTION_TRUNCATED_CHARS_METRIC;
	- line 3: use codex_otel::THREAD_SKILLS_ENABLED_TOTAL_METRIC;
	- line 4: use codex_otel::THREAD_SKILLS_KEPT_TOTAL_METRIC;
	- line 5: use codex_otel::THREAD_SKILLS_TRUNCATED_METRIC;
	- line 97: extension_metrics.histogram(name, value, &tags);


codex-rs/core/src/client.rs (5 lines):
	- line 76: use codex_otel::SessionTelemetry;
	- line 77: use codex_otel::current_span_w3c_trace_context;
	- line 1463: #[instrument(
	- line 1550: #[instrument(
	- line 1707: #[instrument(


codex-rs/exec-server/src/remote.rs (5 lines):
	- line 108: #[tracing::instrument(
	- line 207: #[tracing::instrument(
	- line 309: #[tracing::instrument(
	- line 721: #[tracing::instrument(
	- line 911: "traceparent",


codex-rs/core/src/config/otel.rs (4 lines):
	- line 51: if let Err(err) = codex_otel::validate_span_attributes(&attribute) {
	- line 75: if let Err(err) = codex_otel::validate_tracestate_member(&member_key, &fields) {
	- line 85: if let Err(err) = codex_otel::validate_tracestate_entries(&valid_entries) {
	- line 101: if let Err(err) = codex_otel::validate_tracestate_member(member_key, &field) {


codex-rs/code-mode-host/src/main.rs (4 lines):
	- line 8: use codex_otel::OtelExporter;
	- line 9: use codex_otel::OtelHttpProtocol;
	- line 10: use codex_otel::OtelProvider;
	- line 11: use codex_otel::OtelSettings;


codex-rs/ext/memories/src/extension.rs (4 lines):
	- line 15: use codex_otel::MetricsClient;
	- line 25: metrics_client: Option<MetricsClient>,
	- line 29: fn new(metrics_client: Option<MetricsClient>) -> Self {
	- line 129: metrics_client: Option<MetricsClient>,


codex-rs/core-plugins/src/startup_sync.rs (4 lines):
	- line 13: use codex_otel::CURATED_PLUGINS_STARTUP_SYNC_FINAL_METRIC;
	- line 14: use codex_otel::CURATED_PLUGINS_STARTUP_SYNC_METRIC;
	- line 506: let Some(metrics) = codex_otel::global() else {
	- line 510: let _ = metrics.counter(metric_name, /*inc*/ 1, &tags);


codex-rs/memories/write/src/runtime.rs (4 lines):
	- line 23: use codex_otel::SessionTelemetry;
	- line 24: use codex_otel::TelemetryAuthMode;
	- line 57: pub(crate) fn start_timer(&self, name: &str) -> Option<codex_otel::Timer> {
	- line 205: pub(crate) fn start_timer(&self, name: &str) -> Option<codex_otel::Timer> {


codex-rs/core-plugins/src/manager.rs (4 lines):
	- line 728: #[instrument(
	- line 1780: #[instrument(
	- line 1871: #[instrument(level = "trace", skip_all)]
	- line 2492: #[instrument(level = "trace", skip_all)]


codex-rs/model-provider/src/models_endpoint.rs (4 lines):
	- line 26: use codex_otel::TelemetryAuthMode;
	- line 82: codex_otel::start_global_timer("codex.remote_models.fetch_update.duration_ms", &[]);
	- line 205: target: "codex_otel.log_only",
	- line 231: target: "codex_otel.trace_safe",


codex-rs/otel/src/metrics/mod.rs (4 lines):
	- line 12: pub use crate::metrics::client::MetricsClient;
	- line 26: static GLOBAL_METRICS: OnceLock<MetricsClient> = OnceLock::new();
	- line 29: pub(crate) fn install_global(mut metrics: MetricsClient) -> MetricsClient {
	- line 42: pub fn global() -> Option<MetricsClient> {


codex-rs/ext/guardian-v2/src/async_scorer/metrics.rs (4 lines):
	- line 24: metrics.counter(CLASSIFICATION_METRIC, /*inc*/ 1, &tags);
	- line 25: metrics.histogram(
	- line 36: metrics.counter(
	- line 51: metrics.counter(


codex-rs/exec-server/src/trace_context.rs (4 lines):
	- line 22: let Some(trace) = codex_otel::current_span_w3c_trace_context() else {
	- line 25: if let Some(traceparent) = trace.traceparent
	- line 26: && let Ok(value) = HeaderValue::try_from(traceparent)
	- line 28: headers.insert("traceparent", value);


codex-rs/core/src/session_startup_prewarm.rs (4 lines):
	- line 21: use codex_otel::STARTUP_PREWARM_AGE_AT_FIRST_TURN_METRIC;
	- line 22: use codex_otel::STARTUP_PREWARM_DURATION_METRIC;
	- line 23: use codex_otel::SessionTelemetry;
	- line 60: #[instrument(name = "startup_prewarm.resolve", level = "trace", skip_all)]


codex-rs/exec-server/src/environment.rs (4 lines):
	- line 893: #[tracing::instrument(
	- line 932: #[tracing::instrument(
	- line 948: #[tracing::instrument(
	- line 1075: #[tracing::instrument(


codex-rs/exec-server/src/local_process.rs (4 lines):
	- line 1129: use codex_otel::MetricsConfig;
	- line 1270: codex_otel::MetricsClient,
	- line 1274: let metrics = codex_otel::MetricsClient::new(MetricsConfig::in_memory(
	- line 1296: metrics: codex_otel::MetricsClient,


codex-rs/ext/skills/src/extension.rs (4 lines):
	- line 36: use codex_otel::MetricsClient;
	- line 578: #[tracing::instrument(level = "trace", skip_all)]
	- line 598: #[tracing::instrument(level = "trace", skip_all, fields(skill = %entry.name))]
	- line 664: metrics_client: Option<MetricsClient>,


codex-rs/code-mode/src/grpc_session/operations.rs (4 lines):
	- line 79: let trace = codex_otel::span_w3c_trace_context(&execute_span);
	- line 116: if let Some(traceparent) = trace.and_then(|trace| trace.traceparent)
	- line 117: && let Ok(traceparent) = traceparent.parse()
	- line 119: request.metadata_mut().insert("traceparent", traceparent);


codex-rs/exec-server/src/relay.rs (4 lines):
	- line 93: let (traceparent, tracestate) = trace
	- line 94: .map(|trace| (trace.traceparent, trace.tracestate))
	- line 99: traceparent,
	- line 479: #[tracing::instrument(level = "debug", skip_all, fields(noise_side = "executor"))]


codex-rs/code-mode-host/src/grpc/routing.rs (3 lines):
	- line 106: let (sequence, traceparent, subscriptions) = {
	- line 127: (sequence, execution.traceparent.clone(), subscriptions)
	- line 142: traceparent,


codex-rs/exec/src/lib.rs (3 lines):
	- line 89: use codex_otel::set_parent_from_context;
	- line 90: use codex_otel::traceparent_context_from_env;
	- line 512: if let Some(context) = traceparent_context_from_env() {


codex-rs/otel/src/targets.rs (3 lines):
	- line 1: pub(crate) const OTEL_TARGET_PREFIX: &str = "codex_otel";
	- line 2: pub(crate) const OTEL_LOG_ONLY_TARGET: &str = "codex_otel.log_only";
	- line 3: pub(crate) const OTEL_TRACE_SAFE_TARGET: &str = "codex_otel.trace_safe";


codex-rs/windows-sandbox-rs/src/setup.rs (3 lines):
	- line 685: otel: Option<codex_otel::StatsigMetricsSettings>,
	- line 1072: otel: codex_otel::global_statsig_metrics_settings(),
	- line 1138: otel: codex_otel::global_statsig_metrics_settings(),


codex-rs/core/src/environment_selection.rs (3 lines):
	- line 219: #[tracing::instrument(
	- line 587: #[tracing::instrument(
	- line 688: #[tracing::instrument(


codex-rs/ext/skills/src/provider/orchestrator.rs (3 lines):
	- line 64: codex_otel::start_global_timer(ORCHESTRATOR_SKILL_DISCOVERY_DURATION_METRIC, &[])
	- line 165: if let Some(metrics) = codex_otel::global() {
	- line 166: let _ = metrics.histogram(


codex-rs/app-server/src/request_processors/thread_processor.rs (3 lines):
	- line 4096: #[tracing::instrument(level = "trace", skip_all)]
	- line 4383: #[tracing::instrument(level = "trace", skip_all)]
	- line 4502: #[tracing::instrument(level = "trace", skip_all)]


codex-rs/ext/skills/src/tools/mod.rs (3 lines):
	- line 28: use codex_otel::sanitize_metric_tag_value;
	- line 142: turn_metrics.record_plugin(skill.plugin_id.as_deref());
	- line 157: metrics.counter(


codex-rs/core/src/session/mcp.rs (3 lines):
	- line 175: #[tracing::instrument(name = "mcp.runtime.refresh_if_dirty", skip_all)]
	- line 325: #[tracing::instrument(name = "mcp.runtime.resolve_for_step", skip_all)]
	- line 376: #[tracing::instrument(


codex-rs/thread-store/src/local/live_writer.rs (3 lines):
	- line 124: #[tracing::instrument(
	- line 178: if let Some(metrics) = codex_otel::global()
	- line 182: let _ = metrics.histogram(ROLLOUT_SIZE_BYTES_METRIC, size_bytes, &[]);


codex-rs/code-mode/src/grpc_session/callbacks.rs (3 lines):
	- line 125: if let Some(traceparent) = call.traceparent.as_ref() {
	- line 126: codex_otel::set_parent_from_w3c_trace_context(
	- line 129: traceparent: Some(traceparent.clone()),


codex-rs/otel/src/metrics/timer.rs (3 lines):
	- line 1: use crate::metrics::MetricsClient;
	- line 9: client: MetricsClient,
	- line 22: pub(crate) fn new(name: &str, tags: &[(&str, &str)], client: &MetricsClient) -> Self {


codex-rs/ext/goal/src/extension.rs (3 lines):
	- line 28: use codex_otel::MetricsClient;
	- line 78: metrics_client: Option<MetricsClient>,
	- line 548: metrics_client: Option<MetricsClient>,


codex-rs/otel/src/metrics/process.rs (3 lines):
	- line 4: use super::client::MetricsClient;
	- line 13: pub fn record_process_start_once(metrics: &MetricsClient, originator: &str) -> Result<bool> {
	- line 21: metrics.counter(


codex-rs/core/src/tools/router.rs (3 lines):
	- line 245: #[instrument(level = "trace", skip_all, err)]
	- line 301: #[instrument(level = "trace", skip_all, err)]
	- line 323: #[instrument(level = "trace", skip_all, err)]


codex-rs/app-server/src/codex_home_metrics.rs (3 lines):
	- line 6: use codex_otel::MetricsClient;
	- line 29: metrics: MetricsClient,
	- line 45: let _ = metrics.histogram_with_boundaries(


codex-rs/ext/skills/src/state.rs (3 lines):
	- line 116: #[tracing::instrument(
	- line 192: #[tracing::instrument(
	- line 279: #[tracing::instrument(name = "skills.executor.catalog_root", level = "info", skip_all)]


codex-rs/code-mode-host/src/grpc/session.rs (3 lines):
	- line 74: pub(super) traceparent: Option<String>,
	- line 300: traceparent: Option<String>,
	- line 313: traceparent,


codex-rs/app-server/src/extensions.rs (3 lines):
	- line 85: codex_otel::global(),
	- line 107: codex_memories_extension::install(&mut builder, codex_otel::global());
	- line 123: codex_otel::global(),


codex-rs/codex-api/src/common.rs (3 lines):
	- line 25: pub const WS_REQUEST_HEADER_TRACEPARENT_CLIENT_METADATA_KEY: &str = "ws_request_header_traceparent";
	- line 365: if let Some(traceparent) = trace.and_then(|trace| trace.traceparent.as_deref()) {
	- line 368: traceparent.to_string(),


codex-rs/exec-server/src/client_transport.rs (3 lines):
	- line 250: #[tracing::instrument(name = "codex.exec_server.remote.noise.connect", skip_all)]
	- line 405: #[tracing::instrument(
	- line 420: #[tracing::instrument(


codex-rs/ext/skills/src/shadow_selection_experiment/mod.rs (3 lines):
	- line 18: use codex_otel::MetricsClient;
	- line 52: metrics_client: Option<MetricsClient>,
	- line 56: pub(crate) fn new(metrics_client: Option<MetricsClient>) -> Self {


codex-rs/core/src/tools/parallel.rs (3 lines):
	- line 73: #[instrument(level = "trace", skip_all)]
	- line 94: #[instrument(level = "trace", skip_all)]
	- line 322: trace_id = %codex_otel::current_span_trace_id().unwrap_or_default(),


codex-rs/core/src/agent/registry.rs (2 lines):
	- line 285: if let Some(metrics) = codex_otel::global() {
	- line 286: let _ = metrics.counter(


codex-rs/core/src/codex_thread.rs (2 lines):
	- line 18: use codex_otel::SessionTelemetry;
	- line 19: use codex_otel::current_span_w3c_trace_context;


codex-rs/codex-mcp/src/runtime.rs (2 lines):
	- line 738: if let Some(metrics) = codex_otel::global() {
	- line 739: let _ = metrics.record_duration(metric, duration, tags);


codex-rs/network-proxy/src/network_policy.rs (2 lines):
	- line 13: const AUDIT_TARGET: &str = "codex_otel.network_proxy";
	- line 761: assert!(event.target.starts_with("codex_otel."));


codex-rs/ext/web-search/src/tool.rs (2 lines):
	- line 151: && let Some(metrics) = codex_otel::global()
	- line 155: let _ = metrics.histogram(RESULTS_PAYLOAD_BYTES_METRIC, payload_bytes, &[]);


codex-rs/app-server/src/request_processors/apps_processor/read.rs (2 lines):
	- line 82: if let Some(metrics) = codex_otel::global() {
	- line 83: let _ = metrics.record_duration(


codex-rs/ext/memories/src/tools/search.rs (2 lines):
	- line 6: use codex_otel::MetricsClient;
	- line 47: pub(super) metrics_client: Option<MetricsClient>,


codex-rs/state/src/log_db.rs (2 lines):
	- line 70: .with_target("codex_otel.log_only", LevelFilter::OFF)
	- line 71: .with_target("codex_otel.trace_safe", LevelFilter::OFF)


codex-rs/ext/memories/src/tools/ad_hoc_note.rs (2 lines):
	- line 6: use codex_otel::MetricsClient;
	- line 41: pub(super) metrics_client: Option<MetricsClient>,


codex-rs/ext/memories/src/tools/list.rs (2 lines):
	- line 6: use codex_otel::MetricsClient;
	- line 39: pub(super) metrics_client: Option<MetricsClient>,


codex-rs/ext/goal/src/runtime.rs (2 lines):
	- line 197: self.inner.metrics.record_created();
	- line 395: self.inner.metrics.record_resumed();


codex-rs/ext/guardian-v2/src/async_scorer/truncation.rs (2 lines):
	- line 50: metrics.counter(CLASSIFICATION_TRUNCATION_METRIC, /*inc*/ 1, &tags);
	- line 62: metrics.histogram(


codex-rs/tui/src/chatwidget/tests.rs (2 lines):
	- line 130: pub(super) use codex_otel::RuntimeMetricsSummary;
	- line 131: pub(super) use codex_otel::SessionTelemetry;


codex-rs/ext/memories/src/tools/read.rs (2 lines):
	- line 6: use codex_otel::MetricsClient;
	- line 38: pub(super) metrics_client: Option<MetricsClient>,


codex-rs/core/src/connectors.rs (2 lines):
	- line 83: #[instrument(level = "trace", skip_all)]
	- line 421: #[instrument(level = "trace", skip_all)]


codex-rs/tui/src/history_cell/tests.rs (2 lines):
	- line 16: use codex_otel::RuntimeMetricTotals;
	- line 17: use codex_otel::RuntimeMetricsSummary;


codex-rs/core/src/tools/handlers/tool_search.rs (2 lines):
	- line 51: #[instrument(level = "trace", skip_all)]
	- line 133: #[instrument(


codex-rs/cloud-config/src/metrics.rs (2 lines):
	- line 88: if let Some(metrics) = codex_otel::global() {
	- line 93: let _ = metrics.counter(metric_name, /*inc*/ 1, &tag_refs);


codex-rs/connectors/src/connector_runtime/persistence.rs (2 lines):
	- line 56: #[instrument(level = "trace", skip_all)]
	- line 87: #[instrument(level = "trace", skip_all)]


codex-rs/connectors/src/connector_runtime/mod.rs (2 lines):
	- line 366: if let Some(metrics) = codex_otel::global() {
	- line 367: let _ = metrics.record_duration(metric, duration, tags);


codex-rs/tui/src/app.rs (2 lines):
	- line 152: use codex_otel::SessionTelemetry;
	- line 153: use codex_otel::TelemetryAuthMode;


codex-rs/core/src/exec.rs (2 lines):
	- line 556: if let Some(metrics) = codex_otel::global() {
	- line 557: let _ = metrics.counter(


codex-rs/ext/memories/src/tools/mod.rs (2 lines):
	- line 10: use codex_otel::MetricsClient;
	- line 30: metrics_client: Option<MetricsClient>,


codex-rs/core/src/tools/events.rs (2 lines):
	- line 12: use codex_otel::ARTIFACT_OPERATION_EXPECTED_OUTPUT_COUNT_METRIC;
	- line 13: use codex_otel::ARTIFACT_OPERATION_STARTED_METRIC;


codex-rs/codex-api/src/files.rs (2 lines):
	- line 208: target: "codex_otel.log_only",
	- line 233: target: "codex_otel.log_only",


codex-rs/rmcp-client/src/rmcp_client.rs (2 lines):
	- line 590: #[instrument(level = "trace", skip_all)]
	- line 672: #[instrument(level = "trace", skip_all)]


codex-rs/ext/memories/src/metrics.rs (2 lines):
	- line 1: use codex_otel::MetricsClient;
	- line 8: metrics_client: Option<&MetricsClient>,


codex-rs/ext/guardian-v2/src/async_scorer/extension.rs (2 lines):
	- line 328: metrics.histogram(
	- line 337: metrics.counter(


codex-rs/tui/src/chatwidget.rs (2 lines):
	- line 133: use codex_otel::RuntimeMetricsSummary;
	- line 134: use codex_otel::SessionTelemetry;


codex-rs/codex-api/src/endpoint/session.rs (2 lines):
	- line 74: #[instrument(
	- line 116: #[instrument(


codex-rs/core/src/tools/handlers/unified_exec/exec_command.rs (2 lines):
	- line 34: use codex_otel::SessionTelemetry;
	- line 35: use codex_otel::TOOL_CALL_UNIFIED_EXEC_METRIC;


codex-rs/app-server/src/request_processors/apps_processor.rs (2 lines):
	- line 377: if let Some(metrics) = codex_otel::global() {
	- line 378: let _ = metrics.record_duration(


codex-rs/codex-api/src/endpoint/responses.rs (2 lines):
	- line 92: #[instrument(
	- line 132: #[instrument(


codex-rs/ext/skills/src/host_service.rs (2 lines):
	- line 163: #[instrument(
	- line 342: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/session/turn_context.rs (2 lines):
	- line 708: #[instrument(name = "turn_context.make", level = "trace", skip_all)]
	- line 912: #[instrument(name = "turn_context.build", level = "trace", skip_all)]


codex-rs/ext/skills/src/telemetry.rs (2 lines):
	- line 14: use codex_otel::sanitize_metric_tag_value;
	- line 79: metrics.histogram(


codex-rs/tui/src/startup_orchestration.rs (2 lines):
	- line 401: if let Some(metrics) = otel.as_ref().and_then(codex_otel::OtelProvider::metrics) {
	- line 402: let _ = codex_otel::record_process_start_once(metrics, otel_originator.as_str());


codex-rs/core-plugins/src/remote.rs (2 lines):
	- line 982: #[instrument(level = "trace", skip_all)]
	- line 999: #[instrument(level = "trace", skip_all)]


codex-rs/code-mode-host/src/lib.rs (2 lines):
	- line 95: #[tracing::instrument(
	- line 348: #[tracing::instrument(


codex-rs/external-agent-migration/src/reporting.rs (2 lines):
	- line 97: let Some(metrics) = codex_otel::global() else {
	- line 105: let _ = metrics.counter(metric_name, /*inc*/ 1, &tag_refs);


codex-rs/exec-server/src/rpc_server_requests.rs (1 line):
	- line 105: trace: codex_otel::current_span_w3c_trace_context(),


codex-rs/otel/src/lib.rs (1 line):
	- line 37: pub use crate::trace_context::traceparent_context_from_env;


codex-rs/exec-server/src/capability_discovery_cache.rs (1 line):
	- line 60: #[tracing::instrument(


codex-rs/core/src/mcp.rs (1 line):
	- line 127: #[tracing::instrument(name = "mcp.runtime_config.project_for_step", skip_all)]


codex-rs/core-plugins/src/provider.rs (1 line):
	- line 110: #[tracing::instrument(name = "plugins.executor.package.resolve", skip_all)]


codex-rs/rmcp-client/src/oauth/refresh_transaction.rs (1 line):
	- line 90: #[tracing::instrument(


codex-rs/thread-store/src/live_thread.rs (1 line):
	- line 198: #[tracing::instrument(


codex-rs/core/src/session/world_state.rs (1 line):
	- line 34: #[tracing::instrument(name = "world_state.build", level = "info", skip_all)]


codex-rs/models-manager/src/manager.rs (1 line):
	- line 483: codex_otel::start_global_timer("codex.remote_models.load_cache.duration_ms", &[]);


codex-rs/codex-mcp/src/connection_manager/tool_catalog.rs (1 line):
	- line 85: #[instrument(level = "trace", skip_all, fields(mcp_server_count = self.servers.len()))]


codex-rs/core/src/agent_communication.rs (1 line):
	- line 4: const AGENT_COMMUNICATION_TARGET: &str = "codex_otel.agent_communication";


codex-rs/tui/src/windows_sandbox.rs (1 line):
	- line 13: use codex_otel::SessionTelemetry;


codex-rs/core/src/session/mcp_refresh.rs (1 line):
	- line 34: #[tracing::instrument(name = "mcp.runtime.refresh_wait", skip_all)]


codex-rs/codex-client/src/retry.rs (1 line):
	- line 69: target: "codex_otel.trace_safe",


codex-rs/hooks/src/engine/command_runner.rs (1 line):
	- line 190: #[tracing::instrument(


codex-rs/exec-server/src/server.rs (1 line):
	- line 36: #[tracing::instrument(


codex-rs/app-server/src/turn_cost_worker.rs (1 line):
	- line 10: use codex_otel::SessionTelemetry;


codex-rs/tui/src/app/tests.rs (1 line):
	- line 120: use codex_otel::SessionTelemetry;


codex-rs/exec-server/src/capability_discovery.rs (1 line):
	- line 42: #[tracing::instrument(


codex-rs/features/src/lib.rs (1 line):
	- line 6: use codex_otel::SessionTelemetry;


codex-rs/exec-server/src/client_refresh.rs (1 line):
	- line 194: #[tracing::instrument(name = "codex.exec_server.remote.connect", skip_all)]


codex-rs/app-server/src/otel_reloader.rs (1 line):
	- line 4: use codex_otel::OtelProvider;


codex-rs/core/src/state/turn.rs (1 line):
	- line 85: pub(crate) _timer: Option<codex_otel::Timer>,


codex-rs/login/src/auth/manager.rs (1 line):
	- line 2344: #[instrument(level = "trace", skip_all)]


codex-rs/memories/write/src/phase2.rs (1 line):
	- line 389: phase_two_e2e_timer: Option<codex_otel::Timer>,


codex-rs/exec-server/src/proto/codex.exec_server.relay.v1.proto (1 line):
	- line 20: optional string traceparent = 11;


codex-rs/core/src/mcp_tool_exposure.rs (1 line):
	- line 74: #[instrument(level = "trace", skip_all)]


codex-rs/exec-server/src/proto/codex.exec_server.relay.v1.rs (1 line):
	- line 15: pub traceparent: ::core::option::Option<::prost::alloc::string::String>,


codex-rs/ext/skills/src/selection.rs (1 line):
	- line 13: #[tracing::instrument(


codex-rs/code-mode-protocol/src/grpc/codex.code_mode.v1.proto (1 line):
	- line 89: optional string traceparent = 10;


codex-rs/core/src/plugins/discoverable.rs (1 line):
	- line 10: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/shell_snapshot.rs (1 line):
	- line 18: use codex_otel::SessionTelemetry;


codex-rs/exec-server/src/client/network_policy_audit.rs (1 line):
	- line 55: target: "codex_otel.log_only",


codex-rs/app-server/src/config_manager.rs (1 line):
	- line 215: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/session/mcp_runtime.rs (1 line):
	- line 299: #[tracing::instrument(name = "mcp.runtime.refresh", skip_all)]


codex-rs/app-server/src/outgoing_message.rs (1 line):
	- line 20: use codex_otel::span_w3c_trace_context;


codex-rs/ext/skills/src/host_prompt.rs (1 line):
	- line 64: #[tracing::instrument(


codex-rs/core/src/mcp_tool_call/telemetry.rs (1 line):
	- line 5: use codex_otel::sanitize_metric_tag_value;


codex-rs/core/src/realtime_conversation.rs (1 line):
	- line 510: #[tracing::instrument(


codex-rs/codex-api/src/endpoint/realtime_call.rs (1 line):
	- line 81: #[instrument(


codex-rs/protocol/src/protocol.rs (1 line):
	- line 209: pub traceparent: Option<String>,


codex-rs/ext/mcp/src/executor_plugin.rs (1 line):
	- line 65: #[tracing::instrument(name = "mcp.executor_plugin.metadata.load", skip_all)]


codex-rs/core/src/tools/orchestrator.rs (1 line):
	- line 28: use codex_otel::ToolDecisionSource;


codex-rs/ext/goal/src/tool.rs (1 line):
	- line 224: self.metrics.record_created();


codex-rs/core/src/compact_model_fallback.rs (1 line):
	- line 3: use codex_otel::SessionTelemetry;


codex-rs/app-server/src/message_processor.rs (1 line):
	- line 616: traceparent: trace.traceparent.clone(),


codex-rs/core/src/turn_timing.rs (1 line):
	- line 10: use codex_otel::TURN_TTFM_DURATION_METRIC;


codex-rs/core-plugins/src/remote/search.rs (1 line):
	- line 32: #[instrument(


codex-rs/core/src/state/service.rs (1 line):
	- line 35: use codex_otel::SessionTelemetry;


codex-rs/core/src/skills.rs (1 line):
	- line 11: use codex_otel::sanitize_metric_tag_value;


codex-rs/rollout/src/state_db.rs (1 line):
	- line 239: metrics: codex_otel::MetricsClient,


codex-rs/core/src/session/step_context.rs (1 line):
	- line 12: use codex_otel::SessionTelemetry;


codex-rs/mcp-server/src/message_processor.rs (1 line):
	- line 88: codex_otel::global(),


codex-rs/core-plugins/src/loader.rs (1 line):
	- line 131: #[instrument(level = "trace", skip_all)]


codex-rs/exec-server/src/resolved_capability.rs (1 line):
	- line 116: #[tracing::instrument(name = "capability_roots.resolve", skip_all)]


codex-rs/core/src/session/extension_metrics.rs (1 line):
	- line 4: use codex_otel::SessionTelemetry;


codex-rs/core/src/stream_events_utils.rs (1 line):
	- line 289: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/session/handlers.rs (1 line):
	- line 7: use codex_otel::set_parent_from_w3c_trace_context;


codex-rs/exec-server/src/sandboxed_file_system.rs (1 line):
	- line 46: #[tracing::instrument(


codex-rs/ext/mcp/src/executor_plugin/provider.rs (1 line):
	- line 52: #[tracing::instrument(name = "mcp.executor_plugin.servers.load", skip_all)]


codex-rs/http-client/src/client_builder.rs (1 line):
	- line 243: target: "codex_otel.log_only",


codex-rs/core/src/agents_md_manager.rs (1 line):
	- line 34: #[tracing::instrument(name = "agents_md.refresh", skip_all)]


codex-rs/core/src/tools/approvals.rs (1 line):
	- line 28: use codex_otel::ToolDecisionSource;


codex-rs/core/src/session/step_settings.rs (1 line):
	- line 9: use codex_otel::SessionTelemetry;


codex-rs/exec-server/src/client/route_aware_http_client.rs (1 line):
	- line 191: codex_otel::inject_span_w3c_trace_headers(&request_span, &mut headers);


codex-rs/cloud-config/src/service.rs (1 line):
	- line 122: codex_otel::start_global_timer("codex.cloud_config_bundle.fetch.duration_ms", &[]);


codex-rs/tui/src/history_cell/mod.rs (1 line):
	- line 64: use codex_otel::RuntimeMetricsSummary;


codex-rs/exec-server/src/connection.rs (1 line):
	- line 76: && !codex_otel::set_parent_from_w3c_trace_context(&request_span, trace)


codex-rs/ext/skills/src/render.rs (1 line):
	- line 487: #[tracing::instrument(


codex-rs/ext/skills/src/loader/environment.rs (1 line):
	- line 106: #[tracing::instrument(


codex-rs/tui/src/app_server_session.rs (1 line):
	- line 124: use codex_otel::TelemetryAuthMode;


codex-rs/hooks/src/engine/mcp_runner.rs (1 line):
	- line 17: #[tracing::instrument(


codex-rs/login/src/auth_env_telemetry.rs (1 line):
	- line 2: use codex_otel::AuthEnvTelemetryMetadata;


codex-rs/rollout/src/metadata.rs (1 line):
	- line 197: let metric_client = codex_otel::global();


codex-rs/core/src/thread_manager.rs (1 line):
	- line 1090: #[instrument(level = "trace", skip_all)]


codex-rs/core/src/session/session.rs (1 line):
	- line 628: #[instrument(name = "session_init", level = "info", skip_all)]


codex-rs/app-server-protocol/src/protocol/common.rs (1 line):
	- line 2035: traceparent: Some("traceparent".to_string()),


codex-rs/ext/guardian-v2/src/async_scorer/sampler.rs (1 line):
	- line 189: metrics.histogram(


codex-rs/app-server/src/lib.rs (1 line):
	- line 827: if let Some(metrics) = otel.as_ref().and_then(codex_otel::OtelProvider::metrics) {


codex-rs/core/src/exec_policy.rs (1 line):
	- line 302: #[instrument(level = "info", skip_all)]


codex-rs/ext/connectors/src/executor_plugin.rs (1 line):
	- line 35: #[tracing::instrument(name = "connectors.executor_plugin.declarations.load", skip_all)]
