Skip to main content

Datadog Receiver

Status Available in: contrib Maintainers: @boostchicken, @gouthamve, @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

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

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-04-13