diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index 9035690585e..8b3706787f8 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -1610,16 +1610,21 @@ menu: url: dashboards/functions/smoothing/ parent: dashboards_functions weight: 510 + - name: Telemetry Source + identifier: dashboards_functions_telemetry_source + url: dashboards/functions/telemetry_source/ + parent: dashboards_functions + weight: 511 - name: Timeshift identifier: dashboards_functions_timeshift url: dashboards/functions/timeshift/ parent: dashboards_functions - weight: 511 + weight: 512 - name: Beta identifier: dashboards_functions_beta url: dashboards/functions/beta/ parent: dashboards_functions - weight: 512 + weight: 513 - name: Graph Insights identifier: dashboards_graph_insights url: dashboards/graph_insights diff --git a/content/en/dashboards/functions/_index.md b/content/en/dashboards/functions/_index.md index e31d3cd37b4..1ec752facd2 100644 --- a/content/en/dashboards/functions/_index.md +++ b/content/en/dashboards/functions/_index.md @@ -50,6 +50,7 @@ Functions can be applied to your queries by clicking the Add Function `Σ` icon {{< nextlink href="/dashboards/functions/regression" >}}Regression: Apply a machine learning function.{{< /nextlink >}} {{< nextlink href="/dashboards/functions/rollup" >}}Rollup: Control the number of raw data points used. {{< /nextlink >}} {{< nextlink href="/dashboards/functions/smoothing" >}}Smoothing: Smooth your metric variations.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/telemetry_source" >}}Telemetry Source: Choose the telemetry source of your metric data.{{< /nextlink >}} {{< nextlink href="/dashboards/functions/timeshift" >}}Timeshift: Shift your metric data point along the timeline. {{< /nextlink >}} {{< nextlink href="/dashboards/functions/beta" >}}Beta: Compute the rolling average of a metric.{{< /nextlink >}} {{< /whatsnext >}} diff --git a/content/en/dashboards/functions/telemetry_source.md b/content/en/dashboards/functions/telemetry_source.md new file mode 100644 index 00000000000..67b4a41011d --- /dev/null +++ b/content/en/dashboards/functions/telemetry_source.md @@ -0,0 +1,61 @@ +--- +title: Telemetry Source +description: Control whether a metric query uses only the queried metric or combines equivalent Datadog and OpenTelemetry metrics. +aliases: + - /graphing/functions/telemetry_source/ +further_reading: +- link: "/metrics/open_telemetry/query_metrics" + tag: "Documentation" + text: "Query Across Datadog and OpenTelemetry Metrics" +--- + +{{< callout url="#" btn_hidden="true" header="Join the Preview!" >}} +The Telemetry source query modifier is in Preview. +{{< /callout >}} + +The Telemetry source query modifier controls whether a metric query uses only the queried metric or combines equivalent Datadog and OpenTelemetry metrics. For more information about querying across both sources, see [Query Across Datadog and OpenTelemetry Metrics][1]. + +In the query editor, select **Modify** and then choose an option in the **Telemetry sources** section. + +{{< img src="dashboards/functions/telemetry_source_combined.png" alt="Telemetry sources query modifier showing Combined telemetry selected." style="width:75%;" >}} + +| UI option | JSON value | Behavior | +|---|---|---| +| **Native telemetry** (default) | `"semantic_mode": "native"` | Returns only the queried metric. Does not include equivalent metrics from another telemetry source. | +| **Combined telemetry** | `"semantic_mode": "combined"` | Combines equivalent Datadog and OpenTelemetry metrics into a single query result. | + +To set the telemetry source in the JSON editor, add the `semantic_mode` key to your query object: + +{{< highlight json "hl_lines=6" >}} +"queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "sum:go.goroutine.count{*}", + "semantic_mode": "combined" + } +] +{{< /highlight >}} + +## Other functions + +{{< whatsnext desc="Consult the other available functions:" >}} + {{< nextlink href="/dashboards/functions/algorithms" >}}Algorithmic: Implement anomaly or outlier detection.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/arithmetic" >}}Arithmetic: Perform arithmetic operations.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/count" >}}Count: Count non-zero or non-null values.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/exclusion" >}}Exclusion: Exclude certain values of your metric.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/interpolation" >}}Interpolation: Fill or set default values.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/rank" >}}Rank: Select only a subset of metrics. {{< /nextlink >}} + {{< nextlink href="/dashboards/functions/rate" >}}Rate: Calculate a custom derivative over your metric.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/regression" >}}Regression: Apply a machine learning function.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/rollup" >}}Rollup: Control the number of raw data points used. {{< /nextlink >}} + {{< nextlink href="/dashboards/functions/smoothing" >}}Smoothing: Smooth your metric variations.{{< /nextlink >}} + {{< nextlink href="/dashboards/functions/timeshift" >}}Timeshift: Shift your metric data point along the timeline. {{< /nextlink >}} + {{< nextlink href="/dashboards/functions/beta" >}}Beta: Compute the rolling average of a metric.{{< /nextlink >}} +{{< /whatsnext >}} + +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /metrics/open_telemetry/query_metrics diff --git a/content/en/dashboards/querying/_index.md b/content/en/dashboards/querying/_index.md index 724f83da626..ee9fe91432b 100644 --- a/content/en/dashboards/querying/_index.md +++ b/content/en/dashboards/querying/_index.md @@ -47,7 +47,7 @@ Select your visualization from the available [widgets][3]. Choose the metric to graph by searching or selecting it from the dropdown next to {{< ui >}}Metric{{< /ui >}}. If you don't know which metric to use, the metric dropdown provides additional information, including the `unit`, `type`, `interval`, `description`, `tags`, and number of `tag values`. -You may also see Datadog or OpenTelemetry source indicators. If your environment uses both, you can use Datadog's {{< ui >}}Semantic Mode{{< /ui >}} selector to [Query Across Datadog and OpenTelemetry Metrics][18] in a single graph. +You may also see Datadog or OpenTelemetry source indicators. If your environment uses both, you can use Datadog's [Telemetry source][19] query modifier to [Query Across Datadog and OpenTelemetry Metrics][18] in a single graph. {{< img src="dashboards/querying/metric_dropdown.png" alt="Metric Selector Dropdown" responsive="true" style="width:100%;">}} @@ -262,3 +262,4 @@ With split graphs, you can see your metric visualizations broken out by tags. [16]: /dashboards/widgets/timeseries/#event-overlay [17]: /logs/explorer/search_syntax/ [18]: /metrics/open_telemetry/query_metrics +[19]: /dashboards/functions/telemetry_source/ diff --git a/content/en/metrics/open_telemetry/query_metrics.md b/content/en/metrics/open_telemetry/query_metrics.md index 7e78cb4be8d..2a209149af9 100644 --- a/content/en/metrics/open_telemetry/query_metrics.md +++ b/content/en/metrics/open_telemetry/query_metrics.md @@ -17,18 +17,18 @@ Datadog helps you bridge this gap by enabling you to: ## Unify OpenTelemetry and Datadog metrics in queries -The [Metrics Query Editor][1] includes a Semantic Mode selector, allowing you to control how Datadog handles potentially equivalent metrics from OTel and Datadog sources. +The [Metrics Query Editor][1] and dashboard widgets include a [Telemetry source][3] query modifier, allowing you to control how Datadog handles potentially equivalent metrics from OTel and Datadog sources. Select **Modify** and then choose **Native telemetry** or **Combined telemetry** in the **Telemetry sources** section. -{{< img src="/metrics/otel/semantic_mode.png" alt="Semantic mode selector on Metrics Explorer page." style="width:100%;" >}} +{{< img src="dashboards/functions/telemetry_source_combined.png" alt="Telemetry sources query modifier showing Combined telemetry selected." style="width:100%;" >}} Choose between two modes: -### Strictly adhere to native data source (Default) +### Native telemetry (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 +### Combined telemetry - 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. @@ -41,7 +41,7 @@ Imagine you're monitoring system load using two different metrics: - **OTel native**: `system.cpu.load_average.15m` - **Datadog Agent**: `system.load.15` -If you query for `system.cpu.load_average.15m`, apply a max space aggregation, and set the Semantic Mode to **Combine data from all telemetry sources**, Datadog automatically: +If you query for `system.cpu.load_average.15m`, apply a max space aggregation, and set the telemetry source to **Combined telemetry**, Datadog automatically: 1. Identifies the equivalent Datadog metric: `system.load.15`. 2. Combines the timeseries from both `system.cpu.load_average.15m` and `system.load.15`. @@ -81,3 +81,4 @@ You can also see the tag-based logic used for these mappings. Hover over an equi [1]: https://app.datadoghq.com/metric/explorer [2]: https://app.datadoghq.com/metric/summary +[3]: /dashboards/functions/telemetry_source/ diff --git a/static/images/dashboards/functions/telemetry_source_combined.png b/static/images/dashboards/functions/telemetry_source_combined.png new file mode 100644 index 00000000000..0212b4df0b7 Binary files /dev/null and b/static/images/dashboards/functions/telemetry_source_combined.png differ