Skip to content

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 keyEnvironment variable
cloudflare.api_tokenCF2OTEL_CLOUDFLARE__API_TOKEN
cloudflare.account_idCF2OTEL_CLOUDFLARE__ACCOUNT_ID
cloudflare.zonesCF2OTEL_CLOUDFLARE__ZONES
cloudflare.api_baseCF2OTEL_CLOUDFLARE__API_BASE
cloudflare.timeoutCF2OTEL_CLOUDFLARE__TIMEOUT
cloudflare.max_response_bytesCF2OTEL_CLOUDFLARE__MAX_RESPONSE_BYTES
access.include_service_tokensCF2OTEL_ACCESS__INCLUDE_SERVICE_TOKENS
http.scopeCF2OTEL_HTTP__SCOPE
http.hostsCF2OTEL_HTTP__HOSTS
http.zonesCF2OTEL_HTTP__ZONES
identity.enabledCF2OTEL_IDENTITY__ENABLED
identity.match_windowCF2OTEL_IDENTITY__MATCH_WINDOW
identity.max_candidatesCF2OTEL_IDENTITY__MAX_CANDIDATES
ai_gateway.gatewaysCF2OTEL_AI_GATEWAY__GATEWAYS
ai_gateway.capture_bodiesCF2OTEL_AI_GATEWAY__CAPTURE_BODIES
ai_gateway.max_body_bytesCF2OTEL_AI_GATEWAY__MAX_BODY_BYTES
ai_gateway.link_caller_tracesCF2OTEL_AI_GATEWAY__LINK_CALLER_TRACES
otlp.endpointCF2OTEL_OTLP__ENDPOINT
otlp.protocolCF2OTEL_OTLP__PROTOCOL
otlp.grafana_cloud.instance_idCF2OTEL_OTLP__GRAFANA_CLOUD__INSTANCE_ID
otlp.grafana_cloud.tokenCF2OTEL_OTLP__GRAFANA_CLOUD__TOKEN
state.dirCF2OTEL_STATE__DIR
health.listenCF2OTEL_HEALTH__LISTEN
log.levelCF2OTEL_LOG__LEVEL
log.formatCF2OTEL_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.