mirror of
https://github.com/openai/codex.git
synced 2026-09-04 15:08:45 +00:00
## Summary - Record bounded duration and outcome metrics for remote environment registration and Noise rendezvous connection attempts. - Count reconnects by bounded reason: disconnect, connection failure, or rejected registration. - Trace registration at the owning client boundary without exporting raw environment or registration identifiers. - Replace the stale pre-Noise WebSocket observability design with the current remote transport model. ## Stack Review and land this stack in order: 1. #27466 — trace exec-server JSON-RPC requests 2. #27467 — record bounded connection, request, and process lifecycle metrics 3. #27470 — observe remote registration and Noise rendezvous lifecycle **(this PR)** ## Validation - `just test -p codex-exec-server --lib` (149 passed) - `just test -p codex-cli --test exec_server` (4 passed) - `just argument-comment-lint` - `just bazel-lock-check` - `just fix -p codex-exec-server -p codex-cli` - `just fmt`
28 lines
944 B
Rust
28 lines
944 B
Rust
use opentelemetry::trace::TracerProvider as _;
|
|
use opentelemetry_sdk::trace::SdkTracerProvider;
|
|
use tracing_subscriber::prelude::*;
|
|
|
|
use super::current_trace_context_headers;
|
|
|
|
#[test]
|
|
fn creates_traceparent_header_from_current_span() {
|
|
let provider = SdkTracerProvider::builder().build();
|
|
let tracer = provider.tracer("exec-server-test");
|
|
let subscriber =
|
|
tracing_subscriber::registry().with(tracing_opentelemetry::layer().with_tracer(tracer));
|
|
let _guard = subscriber.set_default();
|
|
tracing::callsite::rebuild_interest_cache();
|
|
let span = tracing::info_span!("outbound-request");
|
|
let _entered = span.enter();
|
|
|
|
let headers = current_trace_context_headers();
|
|
|
|
let traceparent = headers
|
|
.get("traceparent")
|
|
.expect("traceparent header")
|
|
.to_str()
|
|
.expect("valid traceparent header");
|
|
assert!(traceparent.starts_with("00-"));
|
|
assert_eq!(traceparent.len(), 55);
|
|
}
|