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.metrics_scopeCF2OTEL_HTTP__METRICS_SCOPE
http.hostsCF2OTEL_HTTP__HOSTS
http.zonesCF2OTEL_HTTP__ZONES
http.max_metric_hosts_per_zoneCF2OTEL_HTTP__MAX_METRIC_HOSTS_PER_ZONE
http.max_metric_series_per_windowCF2OTEL_HTTP__MAX_METRIC_SERIES_PER_WINDOW
platform.max_metric_series_per_windowCF2OTEL_PLATFORM__MAX_METRIC_SERIES_PER_WINDOW
firewall.rule_dimensionsCF2OTEL_FIREWALL__RULE_DIMENSIONS
firewall.max_metric_series_per_windowCF2OTEL_FIREWALL__MAX_METRIC_SERIES_PER_WINDOW
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.metric_denylistCF2OTEL_OTLP__METRIC_DENYLIST
otlp.attribute_denylistCF2OTEL_OTLP__ATTRIBUTE_DENYLIST
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
zones.excludeCF2OTEL_ZONES__EXCLUDE

For a collector setting, use CF2OTEL_COLLECTORS__<NAME>__<SETTING>. Form <NAME> by uppercasing the collector name and replacing dots with underscores, while retaining existing underscores: aigateway.coverage becomes AIGATEWAY_COVERAGE and r2.catalog_data becomes R2_CATALOG_DATA. <SETTING> is ENABLED, INTERVAL, INITIAL_LOOKBACK or MAX_WINDOW. For example, CF2OTEL_COLLECTORS__AIGATEWAY_COVERAGE__ENABLED=true overrides 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.