diff --git a/codex-rs/core/config.schema.json b/codex-rs/core/config.schema.json index fac5442403e..9555eb171f1 100644 --- a/codex-rs/core/config.schema.json +++ b/codex-rs/core/config.schema.json @@ -605,6 +605,14 @@ "description": "Log user prompt in traces", "type": "boolean" }, + "metrics_exporter": { + "allOf": [ + { + "$ref": "#/definitions/OtelExporterKind" + } + ], + "description": "Optional metrics exporter" + }, "trace_exporter": { "allOf": [ { diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs index 4e2d08b23ca..ab3416ef9df 100644 --- a/codex-rs/core/src/config/mod.rs +++ b/codex-rs/core/src/config/mod.rs @@ -1772,12 +1772,13 @@ impl Config { .unwrap_or(DEFAULT_OTEL_ENVIRONMENT.to_string()); let exporter = t.exporter.unwrap_or(OtelExporterKind::None); let trace_exporter = t.trace_exporter.unwrap_or_else(|| exporter.clone()); + let metrics_exporter = t.metrics_exporter.unwrap_or(OtelExporterKind::Statsig); OtelConfig { log_user_prompt, environment, exporter, trace_exporter, - metrics_exporter: OtelExporterKind::Statsig, + metrics_exporter, } }, }; diff --git a/codex-rs/core/src/config/types.rs b/codex-rs/core/src/config/types.rs index 3bc71006d31..32553d5a19c 100644 --- a/codex-rs/core/src/config/types.rs +++ b/codex-rs/core/src/config/types.rs @@ -437,6 +437,9 @@ pub struct OtelConfigToml { /// Optional trace exporter pub trace_exporter: Option, + + /// Optional metrics exporter + pub metrics_exporter: Option, } /// Effective OTEL settings after defaults are applied.