Replies: 1 comment
|
For To keep gRPC log export while disabling the extra trace pipeline, add [otel]
environment = "prod"
log_user_prompt = false
trace_exporter = "none"
[otel.exporter."otlp-grpc"]
endpoint = "https://your-otel-collector:4317"
[otel.exporter."otlp-grpc".headers]
"x-api-key" = "your-api-key"Keep your actual collector endpoint/authentication settings in place. Restart Codex after changing the configuration. The two signals are separate in that release:
Disabling trace export isolates that noise; it does not by itself prove why your gRPC logs are missing. If logs are still absent, check that the collector accepts This is source-based analysis of your exact release, not an end-to-end reproduction against your collector. AI-assisted answer (Codex). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Trying to get the documented OTEL telemetry working and my config matches the docs:
Based on the observability docs I'd expect to see resourceLogs containing events like codex.api_request, codex.tool_result, codex.conversation_starts etc.
What I'm actually getting is resourceSpans containing only low-level h2 HTTP/2 transport spans things like Prioritize::queue_frame, FramedWrite::flush, hpack::encode with no codex.* events anywhere in the payload.
A few questions:
Is resourceSpans the expected output format or should this be resourceLogs?
Are the codex.* log events documented on the config-advanced page actually emitted yet in this version
0.119.0-alpha.28?Is there a separate config needed to enable the log pipeline vs the trace pipeline?
EDIT: When switching to HTTP JSON format i do get the codex.* events i'd expect but i'd much prefer to use GRPC.
EDIT2: Thinking this is a bug where the h2 noise i'm seeing looks like it's Codex's gRPC connection to the OpenAI API being captured by the unfiltered tracing subscriber and then exported over my gRPC OTEL connection. I'm guessing both use the same h2 library, so the subscriber can't distinguish between "this is the app's API call" and "this is the OTEL export call." 🤷
All reactions