Skip to main content

Open AI Codex · via Relay Server

Deploy an internal relay server that forwards telemetry to Milestone. Choose the deployment model that fits your infrastructure.

Server Setup (Kubernetes)

Install the upstream OpenTelemetry Collector chart on your Kubernetes cluster. The chart is community-maintained; Milestone provides the per-tenant values.yaml and a kubectl-applyable Secret manifest.

Step 1: Add the upstream OTel Helm repo

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts && helm repo update

Step 2: Download configuration

Download values.yaml and secret.yaml from the Integration page in the Milestone app.

Step 3: Create namespace & apply the Secret

kubectl create namespace monitoring --dry-run=client -o yaml | kubectl apply -f -
kubectl apply -f secret.yaml -n monitoring

Step 4: Install the chart

helm install milestone-relay open-telemetry/opentelemetry-collector --version 0.156.2 -n monitoring --create-namespace -f values.yaml

Developer Setup

Save to ~/.codex/config.toml on each developer machine — replace <your-collector-endpoint> with the address you exposed the collector on (internal LB, NodePort, Ingress, etc.). The service is deployed as ClusterIP — expose it however fits your network.

[otel]
environment = "prod"
log_user_prompt = false

[otel.exporter.otlp-http]
endpoint = "http://<your-collector-endpoint>:4318/v1/logs"
protocol = "binary"
headers = { }

[otel.metrics_exporter.otlp-http]
endpoint = "http://<your-collector-endpoint>:4318/v1/metrics"
protocol = "binary"
headers = { }

Set User Identity

Add to your shell profile (~/.zshrc or ~/.bashrc):

export OTEL_RESOURCE_ATTRIBUTES="user.login=$(whoami),user.email=$(whoami)@<your-company-domain>.com"

Then reload: source ~/.zshrc

Restart Codex

Close and reopen Codex for settings to take effect.