Query Across Datadog and OpenTelemetry Metrics

Join the Preview!

Querying across Datadog and OpenTelemetry metrics is in Preview. To enable this feature, click Request Access and complete the form.

Request Access

Many organizations use OpenTelemetry (OTel) alongside Datadog, creating hybrid environments where some hosts emit OTel metrics and others emit Datadog metrics. Because OTel and Datadog metrics often use different naming conventions and semantic definitions, creating a unified view of your infrastructure in these environments can be challenging.

Datadog helps you bridge this gap by enabling you to:

  • Query OTel and Datadog metrics together.
  • Understand metric sources and mappings.

Unify OpenTelemetry and Datadog metrics in queries

The Metrics Query Editor includes a Semantic Mode selector, allowing you to control how Datadog handles potentially equivalent metrics from OTel and Datadog sources.

Semantic mode selector on Metrics Explorer page.

Choose between two modes:

Strictly adhere to native data source (Default)

  • This mode queries only the specific metric name you enter (whether it’s a Datadog or OTel metric).
  • It does not include data from any equivalent metrics.

Combine data from all telemetry sources

  • This mode automatically combines data from equivalent Datadog and OTel metrics into a single query, even if you only enter one of the metric names.
  • It handles the mapping between equivalent metrics (including complex ones) and aggregates all related timeseries as a single metric.
  • This works whether you start with a Datadog metric or an OTel metric.

Example

Imagine you’re monitoring system load using two different metrics:

  • OTel native: otel.system.cpu.load_average.15m
  • Datadog Agent: system.load.15

If you query for otel.system.cpu.load_average.15m, apply a max space aggregation, and set the Semantic Mode to Combine data from all telemetry sources, Datadog automatically:

  1. Identifies the equivalent Datadog metric: system.load.15.
  2. Combines the timeseries from both otel.system.cpu.load_average.15m and system.load.15.
  3. Applies the max aggregation across all datapoints from both sources.

This uses the equiv_otel function to merge the data.

Understand metric sources and mappings

To provide clarity when querying, the metric source and equivalent metrics are displayed:

  • Source pill: In the query editor, a Datadog or OTel pill appears next to the metric name, indicating its origin.

  • Equivalent metrics list: The editor also shows a list of metrics considered equivalent to the one you’ve queried. This includes complex one-to-many mappings. For example, otel.system.cpu.utilization maps to multiple Datadog CPU state metrics (system.cpu.idle, system.cpu.iowait, etc.).

Source pill and equivalent metrics list

View detailed mappings

For a comprehensive view of how specific OTel and Datadog metrics relate, check the Metrics Summary page:

  1. Navigate to Metrics > Summary.
  2. Search for a known Datadog or OTel metric.
  3. Open the Metric Details side panel.

Alternatively, click Edit in Metrics Summary when inputting a metric in the query editor.

This panel displays metric mappings, including complex relationships. For example, it shows how otel.system.cpu.utilization maps to multiple Datadog metrics like system.cpu.idle, system.cpu.user, and others.

Metrics Summary Details panel showing OTel and Datadog mappings

You can also see the tag-based logic used for these mappings. Hover over an equivalent metric to see the specific conditions. For example, hovering over system.cpu.idle shows that it maps to otel.system.cpu.utilization when state=idle, and the value is multiplied by 100.

Hover-over tooltip showing tag-based mapping logic

Further Reading

Additional helpful documentation, links, and articles:

PREVIEWING: brett.blue/query-otel-metrics