Datadog and OpenTelemetry Compatibility

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

Overview

Datadog offers multiple setup options to accommodate various use cases, from full OpenTelemetry (OTel) implementations to hybrid setups using both OpenTelemetry and Datadog components. This page covers the compatibility between different setups and supported Datadog products and features, helping you choose the best configuration for your needs.

Setups

The following setups are supported:

Setup TypeAPISDKCollector/Agent
Full OpenTelemetryOTel APIOTel SDKOTel Collector
OTel to Datadog Agent (OTLP)OTel APIOTel SDKDatadog Agent (OTLP Ingest)
OTel API with Datadog SDK and AgentOTel APIDatadog SDKDatadog Agent
Datadog Agent with embedded OTel Collector (Preview)OTel APIOTel SDK or Datadog SDKDatadog Agent (with embedded Collector)
Full DatadogDatadog APIDatadog SDKDatadog Agent
The Agent with embedded OTel Collector (Preview) supports two data flow options:
  • OTel SDK → embedded Collector, or
  • Datadog SDK → Datadog Agent
  • Feature compatibility

    Supported Datadog features

    The following table shows Datadog feature compatibility across different setups:

    FeatureFull OTelOTel to Datadog Agent (OTLP)OTel API with Datadog SDK and AgentDatadog Agent with embedded OTel Collector (Preview)Full Datadog
    Runtime Metrics
    (Java, .NET, Go only)

    (Java, .NET, Go only)

    (Java, .NET, Go only)
    Cloud SIEM
    Correlated Traces, Metrics, Logs
    Real User Monitoring (RUM)
    Source code integration
    (Datadog SDK only)
    Live Processes
    Live Container Monitoring/Kubernetes Explorer
    Network Performance Monitoring (NPM)
    Database Monitoring (DBM)
    (Datadog SDK only)
    Application Security Management (ASM)
    (Datadog SDK only)
    Continuous Profiler
    (Datadog SDK only)
    Data Jobs Monitoring (DJM)
    (Datadog SDK only)
    Data Streams Monitoring (DSM)
    (Datadog SDK only)
    Universal Service Monitoring (USM)

    Supported OpenTelemetry features

    The following table shows OpenTelemetry feature compatibility across different setups:

    FeatureFull OTelOTel to Datadog Agent (OTLP)OTel API with Datadog SDK and AgentDatadog Agent with embedded OTel Collector (Preview)Full Datadog
    Span Links

    More details

    Runtime metrics

    Setups using the OpenTelemetry SDK follow the OpenTelemetry Runtime Metrics specification.

    Real User Monitoring (RUM)

    To enable full RUM functionality, you need to inject supported headers to correlate RUM and traces.

    Network Performance Monitoring (NPM)

    Span-level or endpoint-level monitoring is not supported.

    For more information, see Network Performance Monitoring Setup.

    Live Processes

    For OTel to Datadog Agent (OTLP), you must enable the Process Agent.

    Source Code Integration

    For unsupported languages in OpenTelemetry setups, configure telemetry tagging to link data to a specific commit.

    Best practices

    When using Datadog and OpenTelemetry together, Datadog recommends the following best practices to ensure optimal performance and to avoid potential issues:

    • Avoid mixed instrumentation: Do not use both a Datadog SDK and an OpenTelemetry SDK to instrument the same application, as this leads to undefined behavior.
    • Avoid Agent and separate Collector on same host: Do not run the Datadog Agent and a separate OpenTelemetry Collector on the same host, as this may cause issues. However, you can run Agents and Collectors on different hosts within the same fleet.

    Further reading

    Additional helpful documentation, links, and articles: