Skip to main content

Datadog Receiver

Status Available in: contrib Maintainers: @boostchicken, @MovieStoreGuy Source: opentelemetry-collector-contrib

Supported Telemetry

Logs Metrics Traces

Overview

Configuration

Configuration wise is very simple, just need to specify where the Datadog receiver should listen and the read timeout. Then, the receiver must be configured in the pipeline where it will be used. The feature gate receiver.datadogreceiver.Enable128BitTraceID (disabled by default) enables the receiver to reconstruct 128-bit trace ids from spans coming from a datadog instrumented service. This is necessary if a trace is initiated with a 128-bit trace id by a service that then calls a datadog instrumented one. Without this, spans from the datadog instrumented service will not correlate with the other spans.
receivers:
  datadog:
    endpoint: localhost:8126
    read_timeout: 60s
    trace_id_cache_size: 100
    idle_series_timeout: 60m
    idle_series_cleanup_interval: 5m

exporters:
  debug:

service:
  pipelines:
    metrics:
      receivers: [datadog]
      exporters: [debug]
    traces:
      receivers: [datadog]
      exporters: [debug]

read_timeout (Optional)

The read timeout of the HTTP Server Default: 60s

trace_id_cache_size (Optional)

The size of the LRU cache used to cache 64-bit trace ids and their matching 128-bit trace ids. This only has en effect when the feature gate receiver.datadogreceiver.Enable128BitTraceID is enabled. Default: 100

idle_series_timeout (Optional)

The duration a specific series (metric name + unique tags) can be idle (not receive data) before being considered stale and removed from memory. This is useful to release memory in High Cardinality scenarios (e.g. ephemeral pods) where the number of series grows indefinitely. Recommendation: If enabled, ensure this value is significantly higher than the interval of your slowest emitting metric or cronjob. For example, if you have a job that runs every 30 minutes, set this to at least 60m to avoid resetting the start timestamp for those metrics. Default: 0s (Disabled - series are kept indefinitely)

idle_series_cleanup_interval (Optional)

The duration between runs of the idle series cleanup task. This setting is only used when idle_series_timeout is enabled (greater than 0). The value must be a string with a unit (e.g. “5m”, ”60s”). Default: “5m”

HTTP Service Config

All config params here are valid as well https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/confighttp#server-configuration

/intake Config

The datadog-agent forwards metadata about its runtime environment via the /intake API endpoint. This receiver supports receiving this data and forwarding it directly to Datadog. (Note that this data isn’t telemetry data, so it does not go through any configured collector pipelines.) This feature can be enabled in the config:
receivers:
  datadog:
    intake:
      behavior: proxy
      proxy:
        api:
          key: ${env:DD_API_KEY}
          site: datadoghq.com
          fail_on_invalid_key: true

Metric Tag→Attribute Conversion

Datadog metric tags are expected to be in a key:value format. Tags not in this format will be given an unnamed_ prefix when added to the attribute map (e.g. the tag prod will be converted to unnamed_prod = prod). By default, multiple tags for the same data point with the same key: prefix will only have the last tag retained (e.g. ["env:a","env:b"] will be converted to {env = b}). If the receiver.datadogreceiver.EnableMultiTagParsing feature gate is enabled, multiple tags with the same key will instead be stored as a slice (e.g. ["env:a","env:b"] will be converted to {env = [a,b]}).

Default Attributes

  • dd.span.Resource: The datadog resource name (as distinct from the span name)

Optional Attributes

  • _dd.span_links: This receiver supports DD Agent’s _dd.span_links attribute for span links creation, as produced by Datadog’s tracing libraries. Format example can be found here.

Datadog’s API support

Traces
Datadog API EndpointStatusNotes
/v0.3/tracesAlphaSupport for msgpack and json
/v0.4/tracesAlphaSupport for msgpack and json
/v0.5/tracesAlphaMsgpack custom format
/v0.7/tracesAlpha
/api/v0.2/tracesAlpha
Metrics
Datadog API EndpointStatusNotes
/api/v1/seriesDevelopment
/api/v2/seriesDevelopment
/api/v1/check_runDevelopment
/api/v1/sketchesDevelopment
/api/beta/sketchesDevelopment
/api/v1/distribution_pointsDevelopment
/intakeDevelopmentSupport for proxying calls
Logs
Datadog API EndpointStatusNotes
/api/v2/logsDevelopmentSupport for msgpack and json

Temporality considerations

Some backends use a different timestamp temporality than Datadog uses. Both delta and cumulative temporalities are allowed in the spec. In order to store metrics on these backends, the receiver will need to translate the timestamps. For backends that use cumulative temporality, a delta to cumulative processor can be configured in the pipeline.
Last generated: 2026-06-01