After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up Unified Service Tagging.

When using ddtrace-run, the following environment variable options can be used:

Unified service tagging

It is recommended to use DD_ENV, DD_SERVICE, and DD_VERSION to set env, service, and version for your services. Refer to the Unified Service Tagging documentation for recommendations on how to configure these environment variables.

DD_ENV
Set the application’s environment, for example: prod, pre-prod, staging. Learn more about how to setup your environment. Available in version 0.38+.
DD_SERVICE
The service name to be used for this application. The value is passed through when setting up middleware for web framework integrations like Pylons, Flask, or Django. For tracing without a web integration, it is recommended that you set the service name in code (for example, see these Django docs). Available in version 0.38+.
DD_VERSION
Set the application’s version, for example: 1.2.3, 6c44da20, 2020.02.13. Available in version 0.38+.

Traces

DD_TRACE_ENABLED
Default: true
Enable web framework and library instrumentation. When false, the application code doesn’t generate any traces.
DD_TRACE_SAMPLE_RATE
Enable trace volume control
Note: DD_TRACE_SAMPLE_RATE is deprecated in favor of DD_TRACE_SAMPLING_RULES.
DD_TRACE_DEBUG
Default: false
Enable debug logging in the tracer.
DD_SERVICE_MAPPING
Define service name mappings to allow renaming services in traces, for example: postgres:postgresql,defaultdb:postgresql. Available in version 0.47+.
DD_TRACE_RATE_LIMIT
Maximum number of spans to sample per-second, per-Python process. Defaults to 100 when DD_TRACE_SAMPLE_RATE is set. Otherwise, delegates rate limiting to the Datadog Agent.
DD_TRACE_HEADER_TAGS
Default: null
Comma-separated list of header names that are reported on the root span as tags. For example, DD_TRACE_HEADER_TAGS="User-Agent:http.user_agent,Referer:http.referer,Content-Type:http.content_type,Etag:http.etag".
DD_TRACE_AGENT_URL
The URL of the Trace Agent that the tracer submits to. If set, this takes priority over hostname and port. Supports Unix Domain Sockets (UDS) in combination with the apm_config.receiver_socket configuration in your datadog.yaml file or the DD_APM_RECEIVER_SOCKET environment variable set on the Datadog Agent. For example, DD_TRACE_AGENT_URL=http://localhost:8126 for HTTP URL and DD_TRACE_AGENT_URL=unix:///var/run/datadog/apm.socket for UDS. If the Agent configuration sets receiver_port or DD_APM_RECEIVER_PORT to something other than the default 8126, then DD_AGENT_PORT or DD_TRACE_AGENT_URL must match it.
DD_TRACE_SAMPLING_RULES
Default: []
A JSON array of objects. Each object must have a "sample_rate". The "name" and "service" fields are optional. The "sample_rate" value must be between 0.0 and 1.0 (inclusive). Rules are applied in configured order to determine the trace’s sample rate.
DD_SPAN_SAMPLING_RULES
Default: []
A JSON array of objects. Rules are applied in configured order to determine the span’s sample rate. The sample_rate value must be between 0.0 and 1.0 (inclusive). For more information, see Ingestion Mechanisms.
Example:
  • Set the span sample rate to 50% for the service my-service and operation name http.request, up to 50 traces per second: '[{"service": "my-service", "name": "http.request", "sample_rate":0.5, "max_per_second": 50}]'

Agent

DD_PATCH_MODULES
Override the modules patched for this application execution. Follow the format: DD_PATCH_MODULES=module:patch,module:patch...
DD_TAGS
A list of default tags to be added to every span and profile, for example: layer:api,team:intake,key:value. Available in version 0.38+.
DD_AGENT_HOST
Default: localhost
Override the address of the trace Agent host that the default tracer attempts to submit traces to.
DD_AGENT_PORT
Default: 8126
Overrides the port that the default tracer submit traces to. If the Agent configuration sets receiver_port or DD_APM_RECEIVER_PORT to something other than the default 8126, then DD_AGENT_PORT or DD_TRACE_AGENT_URL must match it.
DD_DOGSTATSD_URL
The URL used to connect to the Datadog Agent for DogStatsD metrics. If set, this takes priority over hostname and port. Supports Unix Domain Sockets (UDS) in combination with the dogstatsd_socket configuration in your datadog.yaml file or the DD_DOGSTATSD_SOCKET environment variable set on the Datadog Agent. For example, DD_DOGSTATSD_URL=udp://localhost:8126 for UDP URL and DD_DOGSTATSD_URL=unix:///var/run/datadog/dsd.socket for UDS. If the Agent configuration sets dogstatsd_port or DD_DOGSTATSD_PORT to something other than the default 8125, then this tracing library DD_DOGSTATSD_URL or DD_DOGSTATSD_PORT must match it.
DD_DOGSTATSD_HOST
Default: localhost
Override the address of the trace Agent host that the default tracer attempts to submit DogStatsD metrics to. Use DD_AGENT_HOST to override DD_DOGSTATSD_HOST.
DD_DOGSTATSD_PORT
Default: 8125
Override the port that the default tracer submits DogStatsD metrics to. If the Agent configuration sets dogstatsd_port or DD_DOGSTATSD_PORT to something other than the default 8125, then this tracing library DD_DOGSTATSD_PORT or DD_DOGSTATSD_URL must match it.

Logs

DD_LOGS_INJECTION
Default: false
Enable connecting logs and trace injection.

Trace context propagation

DD_TRACE_PROPAGATION_STYLE_INJECT
Default: tracecontext,Datadog
Propagation styles to use when injecting tracing headers. For example, use DD_TRACE_PROPAGATION_STYLE_INJECT=Datadog,B3 to inject both Datadog and B3 format headers.
DD_TRACE_PROPAGATION_STYLE_EXTRACT
Default: Value of DD_TRACE_PROPAGATION_STYLE_INJECT (tracecontext,Datadog)
Propagation styles to use when extracting tracing headers. When multiple values are given, it uses the first header match found. The order of matching is based on the order of values given. For example, DD_TRACE_PROPAGATION_STYLE_EXTRACT=B3,Datadog looks for B3 headers first, and only uses Datadog headers if those are not available.

Further Reading