Datadog Receiver
contrib
Maintainers: @boostchicken, @gouthamve, @MovieStoreGuy
Source: opentelemetry-collector-contrib
Supported Telemetry
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 gatereceiver.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.
read_timeout (Optional)
The read timeout of the HTTP Server Default: 60strace_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 gatereceiver.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:
Metric Tag→Attribute Conversion
Datadog metric tags are expected to be in akey: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_linksattribute for span links creation, as produced by Datadog’s tracing libraries. Format example can be found here.
Datadog’s API support
Traces| Datadog API Endpoint | Status | Notes |
|---|---|---|
| /v0.3/traces | Alpha | Support for msgpack and json |
| /v0.4/traces | Alpha | Support for msgpack and json |
| /v0.5/traces | Alpha | Msgpack custom format |
| /v0.7/traces | Alpha | |
| /api/v0.2/traces | Alpha |
| Datadog API Endpoint | Status | Notes |
|---|---|---|
| /api/v1/series | Development | |
| /api/v2/series | Development | |
| /api/v1/check_run | Development | |
| /api/v1/sketches | Development | |
| /api/beta/sketches | Development | |
| /api/v1/distribution_points | Development | |
| /intake | Development | Support for proxying calls |
| Datadog API Endpoint | Status | Notes |
|---|---|---|
| /api/v2/logs | Development | Support 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