Environment variables¶
Configuration loads defaults, then YAML, then CF2OTEL_ environment overrides. Two underscores cross a YAML nesting boundary. Secrets must be supplied only through environment variables.
| YAML key | Environment variable |
|---|---|
cloudflare.api_token | CF2OTEL_CLOUDFLARE__API_TOKEN |
cloudflare.account_id | CF2OTEL_CLOUDFLARE__ACCOUNT_ID |
cloudflare.zones | CF2OTEL_CLOUDFLARE__ZONES |
cloudflare.api_base | CF2OTEL_CLOUDFLARE__API_BASE |
cloudflare.timeout | CF2OTEL_CLOUDFLARE__TIMEOUT |
cloudflare.max_response_bytes | CF2OTEL_CLOUDFLARE__MAX_RESPONSE_BYTES |
access.include_service_tokens | CF2OTEL_ACCESS__INCLUDE_SERVICE_TOKENS |
http.scope | CF2OTEL_HTTP__SCOPE |
http.hosts | CF2OTEL_HTTP__HOSTS |
http.zones | CF2OTEL_HTTP__ZONES |
identity.enabled | CF2OTEL_IDENTITY__ENABLED |
identity.match_window | CF2OTEL_IDENTITY__MATCH_WINDOW |
identity.max_candidates | CF2OTEL_IDENTITY__MAX_CANDIDATES |
ai_gateway.gateways | CF2OTEL_AI_GATEWAY__GATEWAYS |
ai_gateway.capture_bodies | CF2OTEL_AI_GATEWAY__CAPTURE_BODIES |
ai_gateway.max_body_bytes | CF2OTEL_AI_GATEWAY__MAX_BODY_BYTES |
ai_gateway.link_caller_traces | CF2OTEL_AI_GATEWAY__LINK_CALLER_TRACES |
otlp.endpoint | CF2OTEL_OTLP__ENDPOINT |
otlp.protocol | CF2OTEL_OTLP__PROTOCOL |
otlp.grafana_cloud.instance_id | CF2OTEL_OTLP__GRAFANA_CLOUD__INSTANCE_ID |
otlp.grafana_cloud.token | CF2OTEL_OTLP__GRAFANA_CLOUD__TOKEN |
state.dir | CF2OTEL_STATE__DIR |
health.listen | CF2OTEL_HEALTH__LISTEN |
log.level | CF2OTEL_LOG__LEVEL |
log.format | CF2OTEL_LOG__FORMAT |
The collectors map uses collector names such as access.logins; set its per-collector settings in YAML. The otlp.headers map contains secret values, so set each header through an environment variable, for example CF2OTEL_OTLP__HEADERS__AUTHORIZATION.
Required secret variables are CF2OTEL_CLOUDFLARE__API_TOKEN and CF2OTEL_OTLP__GRAFANA_CLOUD__TOKEN. The Grafana Cloud instance ID is CF2OTEL_OTLP__GRAFANA_CLOUD__INSTANCE_ID.