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.metrics_scope | CF2OTEL_HTTP__METRICS_SCOPE |
http.hosts | CF2OTEL_HTTP__HOSTS |
http.zones | CF2OTEL_HTTP__ZONES |
http.max_metric_hosts_per_zone | CF2OTEL_HTTP__MAX_METRIC_HOSTS_PER_ZONE |
http.max_metric_series_per_window | CF2OTEL_HTTP__MAX_METRIC_SERIES_PER_WINDOW |
platform.max_metric_series_per_window | CF2OTEL_PLATFORM__MAX_METRIC_SERIES_PER_WINDOW |
firewall.rule_dimensions | CF2OTEL_FIREWALL__RULE_DIMENSIONS |
firewall.max_metric_series_per_window | CF2OTEL_FIREWALL__MAX_METRIC_SERIES_PER_WINDOW |
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.metric_denylist | CF2OTEL_OTLP__METRIC_DENYLIST |
otlp.attribute_denylist | CF2OTEL_OTLP__ATTRIBUTE_DENYLIST |
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 |
zones.exclude | CF2OTEL_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.