Agent Environment Variables
Overview
For Agent v6, most of the configuration options in the Agent’s main configuration file (datadog.yaml
) can be set through environment variables.
Recommendations
As a best practice, Datadog recommends using unified service tagging when assigning tags. Unified service tagging ties Datadog telemetry together through the use of three standard tags: env
, service
, and version
. To learn how to configure your environment with unified tagging, see the unified service tagging documentation.
General use
In general, use the following rules:
Option names should be uppercase with the DD_
prefix: hostname
-> DD_HOSTNAME
List values should be separated by spaces (Include rules support regexes, and are defined as a list of comma-separated strings):
container_include:
- "image:cp-kafka"
- "image:k8szk"
# DD_CONTAINER_INCLUDE="image:cp-kafka image:k8szk"
The nesting of config options with predefined keys should be separated with an underscore:
cluster_agent:
cmd_port: 5005
# DD_CLUSTER_AGENT_CMD_PORT=5005
The nesting of config options with user-defined keys must be JSON-formatted:
container_env_as_tags:
ENVVAR_NAME: tag_name
# DD_CONTAINER_ENV_AS_TAGS='{"ENVVAR_NAME": "tag_name"}'
Note: Specifying a nested option with an environment variable overrides all the nested options specified under the config option. The exception to this rule is the proxy
config option. Reference the Agent proxy documentation for more details.
Exceptions
Not all datadog.yaml
options are available with environment variables. See config.go in the Datadog Agent GitHub repo. Options with environment variables start with config.BindEnv*
.
Component-specific environment variables not listed in config.go may also be supported.
APM Trace Agent
Live Process Agent
Using environment variables in systemd units
In operating systems that uses systemd to manage services, environment variables—global (for example, /etc/environment
) or session-based (for example, export VAR=value
)—are not generally made available to services unless configured to do so. See systemd Exec manual page for more details.
From Datadog Agent 7.45, the Datadog Agent service (datadog-agent.service
unit) can optionally load environment variables assignments from a file (<ETC_DIR>/environment
).
- Create
/etc/datadog-agent/environment
if it does not exist. - Define newline-separated environment variable assignments. Example:
GODEBUG=x509ignoreCN=0,x509sha1=1
DD_HOSTNAME=myhost.local
DD_TAGS=env:dev service:foo
- Restart the service for changes to take effect
Further Reading
Additional helpful documentation, links, and articles: