feat: configure Codex telemetry and Claude traces - #6007
Conversation
|
|
Running ultrareview automatically — This PR rewrites the Codex install script generator to embed OTLP telemetry and API keys into users' config.toml, adds new API-key persistence, and changes Claude managed settings—any subtle bug could corrupt user configs or break installs, so a deep review is warranted.. I'll post findings when complete. |
There was a problem hiding this comment.
Ultrareview completed in 15m 45s
All reported issues were addressed across 7 files
Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 4 files (changes from recent commits).
Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.
Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 7 files (changes from recent commits).
Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic


Summary
Motivation
The observability plugins already capture hook events, but Codex's quick installer does not configure its native OpenTelemetry exporters and Claude tracing remains disabled. This routes native Codex and Claude OTLP signals through Gram's generic telemetry ingestion path.
Why the endpoint is
/otelOTLP exporters treat the configured value as a base URL and append
/v1/logs,/v1/metrics, or/v1/traces. Configuringhttps://app.getgram.ai/oteltherefore targets Gram's generic/otel/v1/*ingestion routes.The previous
https://app.getgram.ai/rpc/hooks.otelbase was not provider-neutral:/rpc/hooks.otel/v1/tracesis owned by the legacy LiteLLM trace handler. That handler stamps accepted spans withhook_source = "litellm", thelitellm:otel:tracesresource URN, and LiteLLM tool metadata regardless of the producer's incomingservice.name. Claude traffic sent there could therefore appear as LiteLLM even though it never traversed a LiteLLM proxy.The generic
/otel/v1/tracespath preserves the producer's OTLP resource attributes, and downstream source attribution derives fromservice.name, allowing Claude Code telemetry to remain attributed to Claude Code. Claude is configured withhttp/protobufand Codex withbinary, so their payloads match these routes' protobuf decoder.