Skip to content

Commit 6601529

Browse files
Move SDK OTLP export docs to Using Datadog SDK page (Preview) (#37689)
* Move SDK OTLP export content to Using Datadog SDK page Feature OTLP export on the dd_sdks landing page and demote the OpenTelemetry API content to a subsection. Add prerequisites and a verification step, scope Preview to traces, and alias the old private page URL. * Remove unrelated files accidentally staged * Add Next steps routing to Send Data to Datadog from OTLP export * Trim duplicate DDOT recommendation from Next steps * Fix OTLP export link, drop redundant Next steps, trim API section, move API aliases * Surface OTLP export in OTel instrument hub, add page description and compatibility link * Restructure SDK OTLP docs as a hub with a dedicated OTLP export page * Mirror sibling hub-page card layout on the SDK landing page * Add page description, reorder SDK nav, expand landing page hub * Scope OTLP export docs to traces and reframe SDK hub * Tighten trace-export wording: scope Preview callout, collector-first intro * Update content/en/opentelemetry/instrument/dd_sdks/_index.md Co-authored-by: Zach Montoya <zach.montoya@datadoghq.com> * Add SDK prerequisite and OTLP protocol defaults note * Refine OTLP protocol note wording * Polish OTLP docs wording per review feedback --------- Co-authored-by: Zach Montoya <zach.montoya@datadoghq.com>
1 parent e7f5908 commit 6601529

5 files changed

Lines changed: 83 additions & 65 deletions

File tree

config/_default/menus/main.en.yaml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -702,20 +702,25 @@ menu:
702702
identifier: otel-dd-sdk-parent
703703
parent: otel-instrumentation
704704
weight: 302
705-
- name: Configuration
706-
url: opentelemetry/config/environment_variable_support/
707-
identifier: otel_env_var
705+
- name: OTLP Export
706+
url: /opentelemetry/instrument/dd_sdks/otlp_trace_export/
707+
identifier: otel-otlp-export-dd-sdk
708708
parent: otel-dd-sdk-parent
709-
weight: 3021
709+
weight: 3020
710710
- name: APIs
711711
url: /opentelemetry/instrument/dd_sdks/api_support
712712
identifier: otel-api-dd-sdk
713713
parent: otel-dd-sdk-parent
714-
weight: 3022
714+
weight: 3021
715715
- name: Instrumentation Libraries
716716
url: /opentelemetry/instrument/dd_sdks/instrumentation_libraries/
717717
identifier: otel_instrumentation_libraries
718718
parent: otel-dd-sdk-parent
719+
weight: 3022
720+
- name: Configuration
721+
url: opentelemetry/config/environment_variable_support/
722+
identifier: otel_env_var
723+
parent: otel-dd-sdk-parent
719724
weight: 3023
720725
- name: Send Data to Datadog
721726
identifier: otel_collect

content/en/opentelemetry/instrument/_index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
title: Instrument Your Applications
3+
description: Instrument your applications with OpenTelemetry and Datadog SDKs to collect, visualize, and analyze traces across your services and infrastructure.
34
aliases:
45
- /opentelemetry/guide/otel_api_tracing_interoperability
56
further_reading:
@@ -24,9 +25,10 @@ Datadog supports several approaches for instrumenting your applications with Ope
2425

2526
Integrating Datadog with OpenTelemetry allows you to use Datadog's comprehensive observability platform while leveraging OpenTelemetry's vendor-agnostic instrumentation. This allows you to collect, visualize, and analyze traces from your applications and infrastructure.
2627

27-
Use the OpenTelemetry Tracing APIs with Datadog's SDK to maintain vendor-neutral instrumentation while accessing Datadog's full feature set.
28+
Use the OpenTelemetry Tracing APIs with Datadog's SDK to maintain vendor-neutral instrumentation while accessing Datadog's full feature set. Datadog SDKs can also export traces in OpenTelemetry Protocol (OTLP) format to an OTLP-compatible receiver.
2829

2930
{{< whatsnext desc=" " >}}
31+
{{< nextlink href="/opentelemetry/instrument/dd_sdks/otlp_trace_export/" >}}Export traces from the Datadog SDK in OTLP format{{< /nextlink >}}
3032
{{< nextlink href="/opentelemetry/instrument/api_support" >}}Use the Datadog SDK with OpenTelemetry API{{< /nextlink >}}
3133
{{< nextlink href="/opentelemetry/config/environment_variable_support/" >}}Configure the Datadog SDK with OpenTelemetry SDK environment variables{{< /nextlink >}}
3234
{{< /whatsnext >}}
Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: OpenTelemetry API Support
3-
aliases:
4-
- /opentelemetry/interoperability/api_support
5-
- /opentelemetry/interoperability/otel_api_tracing_interoperability/
6-
- /opentelemetry/instrument/api_support/
2+
title: Using Datadog SDKs with OpenTelemetry
3+
description: Export telemetry in OTLP format from Datadog SDKs, or use the OpenTelemetry API with Datadog SDKs to keep vendor-neutral instrumentation.
74
further_reading:
5+
- link: '/opentelemetry/setup/ddot_collector/'
6+
text: 'Datadog Distribution of the OpenTelemetry Collector (DDOT)'
7+
tag: 'Documentation'
88
- link: 'tracing/guide/instrument_custom_method'
99
text: 'Instrument a custom method to get deep visibility into your business logic'
1010
tag: 'Documentation'
@@ -21,44 +21,37 @@ algolia:
2121
tags: ['otel custom instrumentation']
2222
---
2323

24-
Datadog SDKs provide an implementation of the [OpenTelemetry API][1] for traces, metrics, and logs. This means you can maintain vendor-neutral instrumentation of your services, while still taking advantage of Datadog's native implementation, features, and products.
25-
26-
The telemetry produced by your running code can be processed, analyzed, and monitored alongside Datadog's native telemetry, allowing you to take advantage of Datadog's unified platform and products like [Continuous Profiler][3], [Data Streams Monitoring][4], [App and API Protection][5], and [Live Processes][6].
27-
28-
{{< img src="/opentelemetry/setup/otel-api-dd-sdk.png" alt="Diagram: OpenTelemetry API with Datadog SDKs sends telemetry data through the OTLP protocol to the Datadog Agent, which forwards to Datadog's platform." style="width:100%;" >}}
29-
30-
**Note:** You can also send your OpenTelemetry API instrumented traces to Datadog using the [OTel Collector][7].
31-
32-
By [instrumenting your code with OpenTelemetry APIs][2], your code:
33-
34-
- Remains free of vendor-specific API calls.
35-
- Does not depend on Datadog SDKs at compile time (only runtime).
36-
37-
To learn more, follow the link for your language:
38-
39-
{{< card-grid card_width="170px">}}
40-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=java" src="integrations_logos/java.png" alt="Java" >}}
41-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=python" src="integrations_logos/python.png" alt="Python" >}}
42-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=ruby" src="integrations_logos/ruby.png" alt="Ruby" >}}
43-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=go" src="integrations_logos/go-metro.png" alt="go" >}}
44-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=node_js" src="integrations_logos/nodejs.png" alt="Node.js" >}}
45-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=php" src="integrations_logos/php.png" alt="PHP" >}}
46-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=dot_net" src="integrations_logos/dotnet_text.png" alt=".Net" >}}
47-
{{< image-card href="/opentelemetry/instrument/dd_sdks/api_support/?prog_lang=rust" src="integrations_logos/rust.png" alt="Rust" >}}
48-
{{< /card-grid >}}
49-
50-
<br>
51-
52-
<div class="alert alert-info">To see which Datadog features are supported with this setup, see the <a href="/opentelemetry/compatibility/#feature-compatibility">feature compatibility table.</a></div>
24+
Datadog SDKs work with OpenTelemetry in two independent ways. Exporting telemetry in [OpenTelemetry Protocol (OTLP)][1] format controls how telemetry is sent. The [OpenTelemetry API][2] controls how you instrument your services. These can be enabled separately, but using them together provides an OpenTelemetry-native experience.
25+
26+
{{< whatsnext desc=" " >}}
27+
{{< nextlink href="/opentelemetry/instrument/dd_sdks/otlp_trace_export/" >}}
28+
<h3>Export traces in OTLP format</h3>
29+
Export traces from a Datadog SDK in OTLP format to DDOT or any OpenTelemetry Collector, instead of sending them to the Datadog Agent. In Preview.
30+
{{< /nextlink >}}
31+
{{< nextlink href="/opentelemetry/instrument/dd_sdks/api_support/" >}}
32+
<h3>Use the OpenTelemetry API</h3>
33+
Instrument your services with vendor-neutral OpenTelemetry APIs while taking advantage of Datadog's native features and products.
34+
{{< /nextlink >}}
35+
{{< /whatsnext >}}
36+
37+
<div class="alert alert-info"><strong>Comparing setups?</strong><br> See the <a href="/opentelemetry/compatibility/#feature-compatibility">feature compatibility table</a> to understand which Datadog features each setup supports.</div>
38+
39+
## Configure and extend
40+
41+
{{< whatsnext desc=" " >}}
42+
{{< nextlink href="/opentelemetry/instrument/dd_sdks/instrumentation_libraries/" >}}
43+
<h3>Instrumentation Libraries</h3>
44+
Add OpenTelemetry instrumentation libraries to capture telemetry from third-party components alongside Datadog SDK instrumentation.
45+
{{< /nextlink >}}
46+
{{< nextlink href="/opentelemetry/config/environment_variable_support/" >}}
47+
<h3>Configuration</h3>
48+
Configure Datadog SDKs with OpenTelemetry SDK environment variables.
49+
{{< /nextlink >}}
50+
{{< /whatsnext >}}
5351

5452
## Further reading
5553

5654
{{< partial name="whats-next/whats-next.html" >}}
5755

58-
[1]: https://opentelemetry.io/docs/specs/otel/trace/api/
59-
[2]: /tracing/trace_collection/otel_instrumentation/
60-
[3]: /profiler/
61-
[4]: /data_streams/
62-
[5]: /security/application_security/
63-
[6]: /infrastructure/process
64-
[7]: /opentelemetry/setup/collector_exporter/
56+
[1]: https://opentelemetry.io/docs/specs/otlp/
57+
[2]: https://opentelemetry.io/docs/specs/otel/trace/api/

content/en/opentelemetry/instrument/dd_sdks/api_support.mdoc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ description: "Use the OpenTelemetry API with Datadog SDKs to send traces, metric
44
aliases:
55
- /opentelemetry/interoperability/api_support
66
- /opentelemetry/interoperability/otel_api_tracing_interoperability/
7+
- /opentelemetry/instrument/api_support/
78
- /opentelemetry/instrument/api_support/dotnet/
89
- /opentelemetry/instrument/api_support/dotnet/logs
910
- /opentelemetry/instrument/api_support/dotnet/metrics

content/en/opentelemetry/instrument/dd_sdks/otlp_trace_export.md

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
---
22
title: Export Traces from Datadog SDKs in OTLP Format
3-
private: true
3+
description: Configure a Datadog SDK to export traces in OpenTelemetry Protocol (OTLP) format to a DDOT Collector or any OTLP-compatible receiver.
44
further_reading:
5-
- link: "/opentelemetry/instrument/dd_sdks/"
6-
tag: "Documentation"
7-
text: "OpenTelemetry API Support in Datadog SDKs"
8-
- link: "/opentelemetry/"
9-
tag: "Documentation"
10-
text: "OpenTelemetry Support in Datadog"
11-
- link: "/tracing/"
12-
tag: "Documentation"
13-
text: "Datadog APM"
5+
- link: '/opentelemetry/instrument/dd_sdks/'
6+
text: 'Using Datadog SDKs with OpenTelemetry'
7+
tag: 'Documentation'
8+
- link: '/opentelemetry/setup/ddot_collector/'
9+
text: 'Datadog Distribution of the OpenTelemetry Collector (DDOT)'
10+
tag: 'Documentation'
11+
- link: '/tracing/'
12+
text: 'Datadog APM'
13+
tag: 'Documentation'
1414
---
1515

1616
{{< callout url="#" btn_hidden="true" header="Preview">}}
17-
OTLP trace export is in Preview. To provide feedback or request support, contact your Datadog account team.
17+
OTLP trace export from Datadog SDKs is in Preview. To provide feedback or request support, contact your Datadog account team.
1818
{{< /callout >}}
1919

20-
## Overview
20+
Datadog SDKs can export traces in [OTLP][1] format to an OTLP-compatible receiver, including [DDOT][2] or any OpenTelemetry Collector.
2121

22-
Datadog SDKs support exporting traces in [OpenTelemetry Protocol (OTLP)][3] format to any OTLP-compliant receiver or backend, including [DDOT][1] or any OpenTelemetry Collector.
22+
## Prerequisites
23+
24+
OTLP export requires:
25+
26+
- **The Datadog SDK installed and attached to your service.** OTLP export uses your existing Datadog SDK setup. You don't need to configure the Datadog Agent for native trace export, because OTLP export sends traces to a receiver instead.
27+
- **An OTLP-compatible receiver that forwards data to Datadog**, such as the [DDOT Collector][2] or an [OpenTelemetry Collector][3]. OTLP export sends data to a receiver rather than directly to Datadog, so the receiver must be reachable from your instrumented service. For production workloads, Datadog recommends DDOT for batching, performance, and processing benefits. You aren't required to use DDOT.
2328

2429
## Language support
2530

@@ -54,6 +59,8 @@ Select your language to see the minimum SDK version and supported OTLP protocols
5459

5560
{{< /programming-lang-wrapper >}}
5661

62+
**Note**: The OpenTelemetry specification defaults OTLP to `http/protobuf`, but Datadog SDK defaults vary by language. Python, Node.js, and .NET default to `http/json`, while Java and Go default to `http/protobuf`. Where a language supports multiple protocols, set `OTEL_EXPORTER_OTLP_PROTOCOL` or `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` to override the default. Make sure your receiver accepts the protocol you use. By convention, OTLP/HTTP (`http/protobuf` or `http/json`) uses port `4318`, and OTLP/gRPC (`grpc`) uses port `4317`.
63+
5764
## Enable OTLP trace export
5865

5966
To export traces in OTLP format, set the following environment variables on the instrumented service:
@@ -65,17 +72,27 @@ DD_TRACE_OTEL_ENABLED=true
6572

6673
By default, traces are sent to `http://localhost:4318/v1/traces`.
6774

68-
To send traces to a different endpoint, set `OTEL_EXPORTER_OTLP_ENDPOINT` or the trace-specific `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`. See the [OTLP Exporter Configuration][2] documentation for details.
75+
To send traces to a different endpoint, set `OTEL_EXPORTER_OTLP_ENDPOINT` or the trace-specific `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`. See the [OTLP Exporter Configuration][4] documentation for details.
76+
77+
## Verify
78+
79+
After you enable OTLP export and your service receives traffic, confirm that traces appear in the [Trace Explorer][5]. If traces don't arrive, verify that your [receiver][6] is running, reachable at the configured endpoint, and forwarding data to Datadog.
6980

7081
## Current limitations
7182

7283
- OTLP trace export is in Preview and supports core APM functionality for automatic and manually created traces. Other Datadog features and capabilities may not be supported, or may require the Datadog Agent even if traces are not sent through it.
73-
- Traces are exported with Datadog semantics. For example an HTTP status code is represented as `http.status_code` in Datadog semantics and `http.response.status_code` in OTel semantics.
84+
- Traces are exported with Datadog semantics. For example, an HTTP status code is represented as `http.status_code` in Datadog semantics and `http.response.status_code` in OTel semantics.
85+
86+
For details on which Datadog features each setup supports, see the [feature compatibility table][7].
7487

7588
## Further reading
7689

7790
{{< partial name="whats-next/whats-next.html" >}}
7891

79-
[1]: /opentelemetry/setup/ddot_collector/
80-
[2]: https://opentelemetry.io/docs/specs/otel/protocol/exporter/
81-
[3]: https://opentelemetry.io/docs/specs/otlp/
92+
[1]: https://opentelemetry.io/docs/specs/otlp/
93+
[2]: /opentelemetry/setup/ddot_collector/
94+
[3]: /opentelemetry/setup/collector_exporter/
95+
[4]: https://opentelemetry.io/docs/specs/otel/protocol/exporter/
96+
[5]: /tracing/trace_explorer/
97+
[6]: /opentelemetry/setup/
98+
[7]: /opentelemetry/compatibility/#feature-compatibility

0 commit comments

Comments
 (0)