mirror of
https://github.com/openai/codex.git
synced 2026-11-14 06:48:26 +00:00
chore: move otel provider outside of trace module (#8968)
This commit is contained in:
1 parent
e9c548c65e
commit
16c66c37eb
6 files changed
+9
-10
No files matched your search
@@ -6,7 +6,7 @@ use codex_otel::config::OtelExporter;
|
|||||||
use codex_otel::config::OtelHttpProtocol;
|
use codex_otel::config::OtelHttpProtocol;
|
||||||
use codex_otel::config::OtelSettings;
|
use codex_otel::config::OtelSettings;
|
||||||
use codex_otel::config::OtelTlsConfig as OtelTlsSettings;
|
use codex_otel::config::OtelTlsConfig as OtelTlsSettings;
|
||||||
use codex_otel::traces::otel_provider::OtelProvider;
|
use codex_otel::otel_provider::OtelProvider;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
|
|
||||||
/// Build an OpenTelemetry provider from the app Config.
|
/// Build an OpenTelemetry provider from the app Config.
|
||||||
|
|||||||
@@ -2,21 +2,22 @@
|
|||||||
|
|
||||||
`codex-otel` is the OpenTelemetry integration crate for Codex. It provides:
|
`codex-otel` is the OpenTelemetry integration crate for Codex. It provides:
|
||||||
|
|
||||||
- Trace/log exporters and tracing subscriber layers (`codex_otel::traces::otel_provider`).
|
- Trace/log/metrics exporters and tracing subscriber layers (`codex_otel::otel_provider`).
|
||||||
- A structured event helper (`codex_otel::OtelManager`).
|
- A structured event helper (`codex_otel::OtelManager`).
|
||||||
- OpenTelemetry metrics support via OTLP exporters (`codex_otel::metrics`).
|
- OpenTelemetry metrics support via OTLP exporters (`codex_otel::metrics`).
|
||||||
- A metrics facade on `OtelManager` so tracing + metrics share metadata.
|
- A metrics facade on `OtelManager` so tracing + metrics share metadata.
|
||||||
|
|
||||||
## Tracing and logs
|
## Tracing and logs
|
||||||
|
|
||||||
Create an OTEL provider from `OtelSettings`, then attach its layers to your
|
Create an OTEL provider from `OtelSettings`. The provider also configures
|
||||||
`tracing_subscriber` registry:
|
metrics (when enabled), then attach its layers to your `tracing_subscriber`
|
||||||
|
registry:
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
use codex_otel::config::OtelExporter;
|
use codex_otel::config::OtelExporter;
|
||||||
use codex_otel::config::OtelHttpProtocol;
|
use codex_otel::config::OtelHttpProtocol;
|
||||||
use codex_otel::config::OtelSettings;
|
use codex_otel::config::OtelSettings;
|
||||||
use codex_otel::traces::otel_provider::OtelProvider;
|
use codex_otel::otel_provider::OtelProvider;
|
||||||
use tracing_subscriber::prelude::*;
|
use tracing_subscriber::prelude::*;
|
||||||
|
|
||||||
let settings = OtelSettings {
|
let settings = OtelSettings {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
pub mod config;
|
pub mod config;
|
||||||
pub mod metrics;
|
pub mod metrics;
|
||||||
|
pub mod otel_provider;
|
||||||
pub mod traces;
|
pub mod traces;
|
||||||
|
|
||||||
mod otlp;
|
mod otlp;
|
||||||
@@ -11,7 +12,7 @@ use crate::metrics::Result as MetricsResult;
|
|||||||
use crate::metrics::timer::Timer;
|
use crate::metrics::timer::Timer;
|
||||||
use crate::metrics::validation::validate_tag_key;
|
use crate::metrics::validation::validate_tag_key;
|
||||||
use crate::metrics::validation::validate_tag_value;
|
use crate::metrics::validation::validate_tag_value;
|
||||||
use crate::traces::otel_provider::OtelProvider;
|
use crate::otel_provider::OtelProvider;
|
||||||
use codex_protocol::ThreadId;
|
use codex_protocol::ThreadId;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ static TRACEPARENT_CONTEXT: OnceLock<Option<Context>> = OnceLock::new();
|
|||||||
thread_local! {
|
thread_local! {
|
||||||
static TRACEPARENT_GUARD: RefCell<Option<ContextGuard>> = const { RefCell::new(None) };
|
static TRACEPARENT_GUARD: RefCell<Option<ContextGuard>> = const { RefCell::new(None) };
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(jif) move OtelProvider out of `traces/`
|
|
||||||
pub struct OtelProvider {
|
pub struct OtelProvider {
|
||||||
pub logger: Option<SdkLoggerProvider>,
|
pub logger: Option<SdkLoggerProvider>,
|
||||||
pub tracer_provider: Option<SdkTracerProvider>,
|
pub tracer_provider: Option<SdkTracerProvider>,
|
||||||
@@ -1,2 +1 @@
|
|||||||
pub mod otel_manager;
|
pub mod otel_manager;
|
||||||
pub mod otel_provider;
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
use crate::traces::otel_provider::traceparent_context_from_env;
|
use crate::otel_provider::traceparent_context_from_env;
|
||||||
use chrono::SecondsFormat;
|
use chrono::SecondsFormat;
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use codex_api::ResponseEvent;
|
use codex_api::ResponseEvent;
|
||||||
|
|||||||
Reference in new issue
Block a user