# Codex CLI already reports what every turn sends # Observability on Board — episode 07 # docs: https://learn.chatgpt.com/docs/config-file/config-advanced # page: https://observability-on-board.vercel.app/episodes/codex-cli/ # video: https://youtube.com/shorts/k-e-76zvkW4 # # variants: ?ship=bronto|collector|custom ®ion=us &dataset= # ?endpoint=&header=&value= (custom target) # ── Bronto ────────────────────────────────── [otel] environment = "production" log_user_prompt = false [otel.exporter.otlp-http] endpoint = "https://ingestion.eu.bronto.io/v1/logs" protocol = "binary" [otel.exporter.otlp-http.headers] x-bronto-api-key = "" # Codex does not expand $VAR in a header value, so the key goes in literally. # ── Local Collector ─────────────────────────────── [otel] environment = "production" log_user_prompt = false [otel.exporter.otlp-http] endpoint = "http://localhost:4318/v1/logs" protocol = "binary" # This assumes a Collector listening on localhost:4318; the # Local Collector setup (https://observability-on-board.vercel.app/setup/#collector) shows how to start one. # ── Your endpoint ────────────────────────────────── # This uses the endpoint and auth header you saved in the # setup guide (https://observability-on-board.vercel.app/setup/#custom). [otel] environment = "production" log_user_prompt = false [otel.exporter.otlp-http] endpoint = "YOUR_OTLP_ENDPOINT/v1/logs" protocol = "binary" [otel.exporter.otlp-http.headers] YOUR_AUTH_HEADER = "YOUR_AUTH_VALUE"