---
title: Query Across Datadog and OpenTelemetry Metrics
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: >-
  Docs > Metrics > OpenTelemetry Metrics > Query Across Datadog and
  OpenTelemetry Metrics
---

# Query Across Datadog and OpenTelemetry Metrics

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{% #unify-opentelemetry-and-datadog-metrics-in-queries %}

The [Metrics Query Editor](https://app.datadoghq.com/metric/explorer) includes a Semantic Mode selector, allowing you to control how Datadog handles potentially equivalent metrics from OTel and Datadog sources.

{% image
   source="https://datadog-docs.imgix.net/images/metrics/otel/semantic_mode.219bc3cd5fa5470386ddd781fad5cd21.png?auto=format"
   alt="Semantic mode selector on Metrics Explorer page." /%}

Choose between two modes:

### Strictly adhere to native data source (Default){% #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{% #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{% #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`.
1. Combines the timeseries from both `otel.system.cpu.load_average.15m` and `system.load.15`.
1. Applies the max aggregation across all datapoints from both sources.

## Understand metric sources and mappings{% #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.).

{% image
   source="https://datadog-docs.imgix.net/images/metrics/otel/source.df31afbdf80a948e4406d8d2a6fb0713.png?auto=format"
   alt="Source pill and equivalent metrics list" /%}

## View detailed mappings{% #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**](https://app.datadoghq.com/metric/summary).
1. Search for a known Datadog or OTel metric.
1. 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.

{% image
   source="https://datadog-docs.imgix.net/images/metrics/otel/mappings.973d216cd9eca21c0cde713133bfb467.png?auto=format"
   alt="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.

{% image
   source="https://datadog-docs.imgix.net/images/metrics/otel/tooltip.fc70d0d990ca9c175626791047db4b49.png?auto=format"
   alt="Hover-over tooltip showing tag-based mapping logic" /%}

## Further reading{% #further-reading %}

- [OpenTelemetry](https://docs.datadoghq.com/opentelemetry/)
