From 51d75bb80a91f79964199967c5e83c2f64c2ed25 Mon Sep 17 00:00:00 2001 From: Anton Panasenko Date: Tue, 13 Jan 2026 11:36:00 -0800 Subject: [PATCH] fix: drop session span at end of the session (#9126) --- codex-rs/core/src/tasks/regular.rs | 6 ++++-- codex-rs/otel/src/lib.rs | 2 -- codex-rs/otel/src/traces/otel_manager.rs | 16 +++++----------- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/codex-rs/core/src/tasks/regular.rs b/codex-rs/core/src/tasks/regular.rs index 69d2d960a..f897d3ce8 100644 --- a/codex-rs/core/src/tasks/regular.rs +++ b/codex-rs/core/src/tasks/regular.rs @@ -29,8 +29,10 @@ impl SessionTask for RegularTask { cancellation_token: CancellationToken, ) -> Option { let sess = session.clone_session(); - let run_turn_span = - trace_span!(parent: sess.services.otel_manager.current_span(), "run_turn"); + let run_turn_span = trace_span!("run_turn"); + sess.services + .otel_manager + .apply_traceparent_parent(&run_turn_span); run_turn(sess, ctx, input, cancellation_token) .instrument(run_turn_span) .await diff --git a/codex-rs/otel/src/lib.rs b/codex-rs/otel/src/lib.rs index dc53fd011..868a97773 100644 --- a/codex-rs/otel/src/lib.rs +++ b/codex-rs/otel/src/lib.rs @@ -17,7 +17,6 @@ use codex_protocol::ThreadId; use serde::Serialize; use std::time::Duration; use strum_macros::Display; -use tracing::Span; #[derive(Debug, Clone, Serialize, Display)] #[serde(rename_all = "snake_case")] @@ -42,7 +41,6 @@ pub struct OtelEventMetadata { #[derive(Debug, Clone)] pub struct OtelManager { pub(crate) metadata: OtelEventMetadata, - pub(crate) session_span: Span, pub(crate) metrics: Option, pub(crate) metrics_use_metadata_tags: bool, } diff --git a/codex-rs/otel/src/traces/otel_manager.rs b/codex-rs/otel/src/traces/otel_manager.rs index 368a8e338..44d2416ac 100644 --- a/codex-rs/otel/src/traces/otel_manager.rs +++ b/codex-rs/otel/src/traces/otel_manager.rs @@ -23,7 +23,6 @@ use std::time::Duration; use std::time::Instant; use tokio::time::error::Elapsed; use tracing::Span; -use tracing::trace_span; use tracing_opentelemetry::OpenTelemetrySpanExt; pub use crate::OtelEventMetadata; @@ -41,14 +40,8 @@ impl OtelManager { auth_mode: Option, log_user_prompts: bool, terminal_type: String, - session_source: SessionSource, + _session_source: SessionSource, ) -> OtelManager { - let session_span = trace_span!("new_session", conversation_id = %conversation_id, session_source = %session_source); - - if let Some(context) = traceparent_context_from_env() { - let _ = session_span.set_parent(context); - } - Self { metadata: OtelEventMetadata { conversation_id, @@ -61,14 +54,15 @@ impl OtelManager { app_version: env!("CARGO_PKG_VERSION"), terminal_type, }, - session_span, metrics: crate::metrics::global(), metrics_use_metadata_tags: true, } } - pub fn current_span(&self) -> &Span { - &self.session_span + pub fn apply_traceparent_parent(&self, span: &Span) { + if let Some(context) = traceparent_context_from_env() { + let _ = span.set_parent(context); + } } pub fn record_responses(&self, handle_responses_span: &Span, event: &ResponseEvent) {