Codex
Overview
The OpenAI Codex input receives OTel telemetry data emitted by Codex, OpenAI's agentic coding tool, for observability and telemetry.
Requirements
There is no configuration needed at the input level in Monad. Simply create a Codex input and attach it to a pipeline.
All configuration is done on the Codex side, where you point its OTel exporter to the Monad endpoint with the appropriate authentication headers.
Codex Configuration
To send telemetry from Codex to Monad, configure the OpenTelemetry exporter in your Codex settings. You will need:
- A Monad organization API key with the
pipeline:data:writepermission - The pipeline ID of the pipeline with your Codex input
Required Headers
| Header | Value | Description |
|---|---|---|
Authorization | ApiKey <your-api-key> | Monad organization API key |
Your pipeline's ingest hostname, <pipeline-id>.data.monad.com, tells Monad which pipeline the telemetry belongs to.
Self-hosted deployments
A per-pipeline ingest host needs the *.data.<your Monad domain> wildcard in place: a DNS record plus a matching certificate SAN. Monad Cloud has this. A self-hosted deployment has it only if whoever installed Monad set it up, so check with them if you are not sure. See Customer Helm Install for the setup.
Without it, point the exporter at your own Monad hostname (https://<your-monad-host>:4318 for OTLP/HTTP, :4317 for gRPC) and name the pipeline with a header instead: Monad-Pipeline-Id: <pipeline-id>, or the lower-case monad-pipeline-id metadata key for gRPC. Everything else, including the API key, is the same.
Example Configuration
Add the following to your Codex TOML configuration file:
Code
For full details on enabling and configuring telemetry in Codex, see the Codex Advanced Configuration - Observability and Telemetry guide.
Related Articles
- Codex Advanced Configuration - Observability and Telemetry
- Monad OpenTelemetry Input
- OpenTelemetry OTLP Exporter Configuration
Sync frequency
This is a push (receiver) input: Monad ingests records as the source sends them, so there is no polling interval. See Input Sync Frequency for details.