Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions content/en/opentelemetry/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Datadog provides support for the OpenTelemetry Traces, Metrics, and Logs APIs ac
| [Node.js][33] | {{< X >}} | *Not Yet Supported* | {{< X >}} |
| [Java][34] | {{< X >}} | *Not Yet Supported* | *Not Yet Supported* |
| [Go][35] | {{< X >}} | *Not Yet Supported* | *Not Yet Supported* |
| [Ruby][36] | {{< X >}} | *Not Yet Supported* | *Not Yet Supported* |
| [Ruby][36] | {{< X >}} | Alpha | *Not Yet Supported* |
| [PHP][37] | {{< X >}} | *Not Yet Supported* | *Not Yet Supported* |

## More details
Expand All @@ -70,7 +70,8 @@ OpenTelemetry traces that have [generative AI attributes](https://opentelemetry.

### Runtime metrics

Setups using the OpenTelemetry SDK follow the [OpenTelemetry Runtime Metrics][1] specification.
- **Datadog SDK setups**: Emit [Runtime Metrics][23] using DogStatsD (UDP port 8125). Ensure DogStatsD is enabled in your Datadog Agent.
- **OpenTelemetry SDK setups**: Follow the [OpenTelemetry Runtime Metrics][1] specification and are typically sent using OTLP (port 4317/4318).

### Real User Monitoring (RUM)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ The precedence rules on this page describe how *Datadog SDKs* resolve configurat
See the relevant <a href="/tracing/trace_collection/library_config/">SDK Configuration page</a> for default values and more information.
</div>

## Network requirements

{{% otel-network-requirements %}}

**Note**: Even when `DD_METRICS_OTEL_ENABLED=true`, standard Runtime Metrics are still emitted through DogStatsD.

## Datadog SDK configuration
These environment variables enable the Datadog SDK to ingest OpenTelemetry Metrics and Logs API data. For guides on how to instrument your application, see the [language-specific instrumentation documentation][14].

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This feature works by intercepting logs from the built-in `Microsoft.Extensions.
## Prerequisites

- **Datadog SDK**: `dd-trace-dotnet` version [3.31.0][4] or later.
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel logs.

## Setup

Expand Down Expand Up @@ -128,4 +128,4 @@ If you are using Datadog's traditional log injection (where `DD_LOGS_INJECTION=t
[3]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core#install-the-tracer
[4]: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v3.31.0
[5]: /opentelemetry/instrument/api_support/dotnet/traces
[200]: /opentelemetry/setup/otlp_ingest_in_the_agent/?tab=host#enabling-otlp-ingestion-on-the-datadog-agent
[200]: /opentelemetry/setup/otlp_ingest_in_the_agent/?tab=host#enabling-otlp-ingestion-on-the-datadog-agent
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ further_reading:

- **.NET Runtime**: Requires .NET 6+ (or `System.Diagnostics.DiagnosticSource` v6.0.0+). See [Version and instrument support](#net-version-and-instrument-support) for a list of supported instruments by version.
- **Datadog SDK**: dd-trace-dotnet version 3.30.0 or later.
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel metrics.
- **DogStatsD (Runtime Metrics)**: If you also use Datadog [Runtime Metrics][5], ensure the Datadog Agent is listening for DogStatsD traffic on port 8125 (UDP). OTel configuration does not route Runtime Metrics through OTLP.

## Setup

Expand Down Expand Up @@ -136,4 +137,5 @@ Here is the minimum version required for each instrument type:
[2]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-framework/#install-the-tracer
[3]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core#install-the-tracer
[4]: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics
[5]: /tracing/metrics/runtime_metrics/
[200]: /opentelemetry/setup/otlp_ingest_in_the_agent/?tab=host#enabling-otlp-ingestion-on-the-datadog-agent
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ further_reading:

- **Datadog SDK**: `dd-trace-js` version 5.73.0 or later.
- **OpenTelemetry Logs API**: The `@opentelemetry/api-logs` package is required, in a version from `v0.200.0` up to `v1.0`.
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel logs.

<div class="alert alert-warning">
The <code>@opentelemetry/api-logs</code> package is still experimental, and version 1.0 has not yet been released. New versions of this package may introduce breaking changes that affect compatibility.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ further_reading:

- **Datadog SDK**: `dd-trace-js` version 5.81.0 or later.
- **OpenTelemetry API**: `@opentelemetry/api` version 1.0.0 to 1.10.0. (The Datadog SDK provides the implementation for this API).
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel metrics.
- **DogStatsD (Runtime Metrics)**: If you also use Datadog [Runtime Metrics][3], ensure the Datadog Agent is listening for DogStatsD traffic on port 8125 (UDP). OTel configuration does not route Runtime Metrics through OTLP.

## Setup

Expand Down Expand Up @@ -114,4 +115,5 @@ For more details, see the [OpenTelemetry Node.js onboarding docs][2].

[1]: /opentelemetry/config/environment_variable_support
[2]: https://github.com/open-telemetry/opentelemetry-js/blob/4dded45ec67f90998d75e3ddbde9872b6b466183/doc/metrics.md#getting-started
[3]: /tracing/metrics/runtime_metrics/
[200]: /opentelemetry/setup/otlp_ingest_in_the_agent/?tab=host#enabling-otlp-ingestion-on-the-datadog-agent
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ further_reading:
## Prerequisites

- **Datadog SDK**: `dd-trace-py` version 3.18.0 or later.
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel logs.

## Setup

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ further_reading:
## Prerequisites

- **Datadog SDK**: dd-trace-py version 3.18.0 or later.
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel metrics.
- **DogStatsD (Runtime Metrics)**: If you also use Datadog [Runtime Metrics][2], ensure the Datadog Agent is listening for DogStatsD traffic on port 8125 (UDP). OTel configuration does not route Runtime Metrics through OTLP.

## Setup

Expand Down Expand Up @@ -125,4 +126,5 @@ If you are currently using the Datadog DogStatsD client and want to migrate to t
{{< partial name="whats-next/whats-next.html" >}}

[1]: /opentelemetry/config/environment_variable_support
[2]: /tracing/metrics/runtime_metrics/
[200]: /opentelemetry/setup/otlp_ingest_in_the_agent/?tab=host#enabling-otlp-ingestion-on-the-datadog-agent
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ further_reading:
## Prerequisites

- **Datadog SDK**: `datadog` gem version 2.23.0 or later.
- **An OTLP-compatible destination**: You must have a destination ready to receive OTLP data, such as the Datadog Agent or OpenTelemetry Collector.
- **An OTLP-compatible destination**: You must have a destination (Agent or Collector) listening on ports 4317 (gRPC) or 4318 (HTTP) to receive OTel metrics.
- **DogStatsD (Runtime Metrics)**: If you also use Datadog [Runtime Metrics][2], ensure the Datadog Agent is listening for DogStatsD traffic on port 8125 (UDP). OTel configuration does not route Runtime Metrics through OTLP.

## Setup

Expand All @@ -31,7 +32,7 @@ Follow these steps to enable OTel Metrics API support in your Ruby application.
gem 'opentelemetry-metrics-sdk', '~> 0.8'
gem 'opentelemetry-exporter-otlp-metrics', '~> 0.4'
```
2.
2. Install dependencies:
```sh
bundle install
```
Expand Down Expand Up @@ -129,3 +130,4 @@ If you are using the OTel SDK with your own manual OTLP exporter configuration:
{{< partial name="whats-next/whats-next.html" >}}

[1]: /opentelemetry/config/environment_variable_support
[2]: /tracing/metrics/runtime_metrics/
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ Install and set up the following on your machine:
- [Helm (v3+)][54]
- [kubectl][5]

{{< callout btn_hidden="true" >}}
Support for deploying the DDOT Collector on Linux-based bare-metal hosts and virtual machines is in Preview. To get started, follow the <a href="/opentelemetry/setup/ddot_collector/install/linux">Linux documentation</a>.
{{< /callout >}}
**Network**: {{% otel-network-requirements %}}

## Install the Datadog Agent with OpenTelemetry Collector

<div class="alert alert-info">This installation is required for both Datadog SDK + DDOT and OpenTelemetry SDK + DDOT configurations. While the Datadog SDK implements the OpenTelemetry API, it still requires the DDOT Collector to process and forward OTLP metrics and logs.</div>

### Select installation method

Choose one of the following installation methods:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,15 @@ Before you begin, ensure you have the following:
* [Helm][3] (v3+).
* Datadog Helm chart version 3.156.0 or higher.
* [kubectl][4].
* **Network**:
{{% otel-network-requirements %}}

## Installation and configuration

This guide uses the Datadog Helm chart to configure the DDOT Collector gateway. Check out all the available configurations on the [Datadog Helm chart README][8].

<div class="alert alert-info">This installation is required for both Datadog SDK + DDOT and OpenTelemetry SDK + DDOT configurations. While the Datadog SDK implements the OpenTelemetry API, it still requires the DDOT Collector to process and forward OTLP metrics and logs.</div>

### Deploying the gateway with a daemonset

To get started, enable both the gateway and the DaemonSet Collector in your `values.yaml` file. This is the most common setup.
Expand Down Expand Up @@ -564,11 +568,11 @@ To view your gateway pods:

* **Startup race condition**: When deploying the DaemonSet and gateway in the same release, DaemonSet pods might start before the gateway service is ready, causing initial connection error logs. The OTLP exporter automatically retries, so these logs can be safely ignored. Alternatively, deploy the gateway first and wait for it to become ready before deploying the DaemonSet.
* **Ignorable Core Agent Connection Logs**: Gateway pods might generate warning logs about failing to connect to a core Datadog Agent (for example, `grpc: addrConn.createTransport failed to connect`). This occurs because the gateway deployment does not include a core agent in the same pod. These logs are expected and can be safely ignored. This is being actively addressed.

## Further reading

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

[1]: https://www.datadoghq.com/free-datadog-trial/
[2]: https://app.datadoghq.com/organization-settings/api-keys/
[3]: https://helm.sh
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,14 @@ To complete this guide, you need the following:
- A supported Linux distribution (for example, Debian, Ubuntu, CentOS, RHEL, Fedora, SUSE).
- `curl` must be installed to use the one-line installation script.

**Network**:

{{% otel-network-requirements %}}

## Install the Datadog Agent with OpenTelemetry Collector

<div class="alert alert-info">This installation is required for both Datadog SDK + DDOT and OpenTelemetry SDK + DDOT configurations. While the Datadog SDK implements the OpenTelemetry API, it still requires the DDOT Collector to process and forward OTLP metrics and logs.</div>

### Installation

To install the DDOT Collector on a Linux host, use the following one-line installation command:
Expand Down
7 changes: 7 additions & 0 deletions layouts/shortcodes/otel-network-requirements.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
When using the Datadog SDK with OTel API support, telemetry is transmitted through different protocols depending on the signal source. Ensure the following ports are accessible on your Datadog Agent or Collector:

| Signal Source | Protocol | Port | Destination Component |
|---------------|----------|------|----------------------|
| OTel Metrics and Logs API | OTLP (gRPC/HTTP) | 4317 / 4318 | Datadog Agent OTLP Receiver or DDOT Collector |
| Datadog Tracing | Datadog trace intake | 8126 (TCP) | Datadog Trace Agent |
| Runtime Metrics | DogStatsD | 8125 (UDP) | DogStatsD Server |
4 changes: 2 additions & 2 deletions layouts/shortcodes/otel-overview-native.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@

Send custom application {{ $signal }} into Datadog using the OpenTelemetry (OTel) {{ $signalCap }} API with the Datadog SDK (`{{ $sdk }}`).

{{ if $alternative }}This is an alternative to using {{ $alternative }} and means you can write code against the standard OTel interfaces while benefiting from all the features of the Datadog SDK.{{ else }}You can write code against the standard OTel interfaces whilst benefiting from all the features of the Datadog SDK.{{ end }}
{{ if $alternative }}This is an alternative to using {{ $alternative }} and means you can write code against the standard OTel interfaces while benefiting from all the features of the Datadog SDK.{{ else }}You can write code against the standard OTel interfaces while benefiting from all the features of the Datadog SDK.{{ end }}

The Datadog SDK provides a native implementation of the OpenTelemetry API. This means you can write code against the standard OTel interfaces without needing the official OpenTelemetry SDK.

<div class="alert alert-info">You should not install the official OpenTelemetry SDK or any OTLP Exporter packages. The Datadog SDK provides this functionality. Installing both can lead to runtime conflicts and duplicate data.</div>

[100]: /developers/dogstatsd/
[100]: /developers/dogstatsd/
Loading