Skip to content
Merged
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
61 changes: 38 additions & 23 deletions config/_default/menus/main.en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -646,65 +646,80 @@ menu:
url: /opentelemetry/setup/
parent: opentelemetry_top_level
weight: 4
- name: DDOT Collector (Recommended)
url: /opentelemetry/setup/ddot_collector
identifier: otel-setup-ddot
parent: otel_collect
weight: 401
- name: Install the DDOT Collector
url: /opentelemetry/setup/ddot_collector/install/kubernetes
identifier: otel-setup-ddot-install
parent: otel-setup-ddot
weight: 4011
- name: Use Custom OTel Components
url: /opentelemetry/setup/ddot_collector/custom_components
identifier: otel-setup-ddot-custom
parent: otel-setup-ddot
weight: 4012
- name: Migrate to the DDOT Collector
url: /opentelemetry/migrate/ddot_collector
identifier: otel-setup-ddot-migrate
parent: otel-setup-ddot
weight: 4013
- name: Other Setup Options
url: /opentelemetry/setup/
identifier: otel-setup-other
parent: otel_collect
weight: 402
- name: OpenTelemetry Collector
url: /opentelemetry/setup/collector_exporter/
identifier: otel-setup-collector-exporter
parent: otel_collect
weight: 401
parent: otel-setup-other
weight: 4021
- name: Deploy
url: /opentelemetry/setup/collector_exporter/deploy
identifier: otel-setup-collector-exporter-deploy
parent: otel-setup-collector-exporter
weight: 101
weight: 40211
- name: Batch and Memory Settings
url: opentelemetry/config/collector_batch_memory/
identifier: otel_batch_memory
parent: otel-setup-collector-exporter
weight: 102
weight: 40212
- name: Hostnames and Tagging
url: opentelemetry/config/hostname_tagging/
identifier: otel_hostnames_tagging
parent: otel-setup-collector-exporter
weight: 103
weight: 40213
- name: Log Collection
url: opentelemetry/config/log_collection/
identifier: otel_log_collection
parent: otel-setup-collector-exporter
weight: 104
weight: 40214
- name: OTLP Receiver
url: opentelemetry/config/otlp_receiver/
identifier: otel_otlp_receiver
parent: otel-setup-collector-exporter
weight: 105
- name: Datadog Agent
url: /opentelemetry/setup/agent
identifier: otel-setup-agent
parent: otel_collect
weight: 402
- name: DDOT Collector
url: /opentelemetry/setup/ddot_collector
identifier: otel-setup-ddot-collector
parent: otel-setup-agent
weight: 4021
- name: OTLP Ingest
weight: 40215
- name: OTLP Ingest in the Agent
url: /opentelemetry/setup/otlp_ingest_in_the_agent
identifier: otel-setup-otlp-ingest
parent: otel-setup-agent
parent: otel-setup-other
weight: 4022
- name: Agentless Deployment
url: /opentelemetry/setup/agentless
identifier: otel-setup-intake-endpoint
parent: otel_collect
weight: 403
parent: otel-setup-other
weight: 4023
- name: Logs Endpoint
url: /opentelemetry/setup/agentless/logs
parent: otel-setup-intake-endpoint
weight: 301
weight: 40231
identifier: otel_setup_agentless_logs
- name: Metrics Endpoint
url: /opentelemetry/setup/agentless/metrics
parent: otel-setup-intake-endpoint
weight: 302
weight: 40232
identifier: otel_setup_agentless_metrics
- name: Semantic Mapping
url: opentelemetry/mapping/
Expand Down
32 changes: 16 additions & 16 deletions content/en/opentelemetry/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,28 +89,15 @@ There are several ways to instrument your applications with OpenTelemetry and Da
- **OpenTelemetry API**: Use the OpenTelemetry API with Datadog's SDK implementation.
- **OpenTelemetry instrumentation libraries**: Extend Datadog's observability to additional frameworks and technologies.

For more information, see [Instrument Your Applications][8].
For more information, see [Instrument Your Applications][8].

## Send OpenTelemetry data to Datadog

If your applications and services are instrumented with OpenTelemetry libraries, you can choose how to get traces, metrics, and logs data into Datadog.

<div class="alert alert-info"><strong>Not sure which setup is right for you?</strong><br> See the <a href="/opentelemetry/compatibility/">Feature Compatibility</a> table to understand which Datadog features are supported.</div>

### Option 1: Use the OpenTelemetry Collector

{{< img src="/opentelemetry/setup/otel-collector.png" alt="Diagram: OpenTelemetry SDK in code sends data through OTLP to host running OpenTelemetry Collector with Datadog Exporter, which forwards to Datadog's Observability Platform." style="width:100%;" >}}

**Best for**: New or existing OTel users wanting a completely vendor-neutral setup.

- Complete vendor neutrality for sending OpenTelemetry data to Datadog
- Flexible configuration options like tail-based sampling and data transformations

{{< whatsnext desc=" " >}}
{{< nextlink href="/opentelemetry/setup/collector_exporter/" >}}Learn more about using the OTel Collector{{< /nextlink >}}
{{< /whatsnext >}}

### Option 2: Use the Datadog Agent with DDOT Collector
### Option 1: Use the Datadog Agent with DDOT Collector (Recommended)

{{< img src="/opentelemetry/setup/ddot-collector-2.png" alt="Architecture overview for DDOT Collector, which is embedded in the Datadog Agent." style="width:100%;" >}}

Expand All @@ -130,6 +117,19 @@ If your applications and services are instrumented with OpenTelemetry libraries,
{{< nextlink href="/opentelemetry/setup/ddot_collector/" >}}Learn more about using the Datadog Agent with DDOT Collector{{< /nextlink >}}
{{< /whatsnext >}}

### Option 2: Use the OpenTelemetry Collector

{{< img src="/opentelemetry/setup/otel-collector.png" alt="Diagram: OpenTelemetry SDK in code sends data through OTLP to host running OpenTelemetry Collector with Datadog Exporter, which forwards to Datadog's Observability Platform." style="width:100%;" >}}

**Best for**: New or existing OTel users wanting a completely vendor-neutral setup.

- Complete vendor neutrality for sending OpenTelemetry data to Datadog
- Flexible configuration options like tail-based sampling and data transformations

{{< whatsnext desc=" " >}}
{{< nextlink href="/opentelemetry/setup/collector_exporter/" >}}Learn more about using the OTel Collector{{< /nextlink >}}
{{< /whatsnext >}}

### Additional setup options

For other setup options, including Agentless deployment, see [Send Data to Datadog][7].
Expand All @@ -141,4 +141,4 @@ For other setup options, including Agentless deployment, see [Send Data to Datad
[1]: https://opentelemetry.io/
[7]: /opentelemetry/setup
[8]: /opentelemetry/instrument/
[9]: /opentelemetry/compatibility/
[9]: /opentelemetry/compatibility/
17 changes: 12 additions & 5 deletions content/en/opentelemetry/config/log_collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ further_reading:
- link: "/opentelemetry/collector_exporter/"
tag: "Documentation"
text: "Setting Up the OpenTelemetry Collector"
- link: "/opentelemetry/correlate/logs_and_traces/"
tag: "Documentation"
text: "Correlate OpenTelemetry Traces and Logs"
---

<div class="alert alert-info">
Expand Down Expand Up @@ -136,24 +139,28 @@ Resource attributes:
-> kube_app_instance: Str(opentelemetry-collector)
-> k8s.pod.start_time: Str(2023-11-20T12:53:23Z)
ScopeLogs #0
ScopeLogs SchemaURL:
InstrumentationScope
ScopeLogs SchemaURL:
InstrumentationScope
LogRecord #0
ObservedTimestamp: 2023-11-20 13:02:04.332021519 +0000 UTC
Timestamp: 2023-11-20 13:01:46.095736502 +0000 UTC
SeverityText:
SeverityText:
SeverityNumber: Unspecified(0)
Body: Str( return wrapped_send(self, request, **kwargs))
Attributes:
-> log.file.path: Str(/var/log/pods/otel-staging_opentelemetry-demo-loadgenerator-d8c4d699d-ztt98_92bf09ed-0db9-4f69-a9d6-1dadf12e01aa/loadgenerator/1.log)
-> time: Str(2023-11-20T13:01:46.095736502Z)
-> logtag: Str(F)
-> log.iostream: Str(stderr)
Trace ID:
Span ID:
Trace ID:
Span ID:
Flags: 0
```

## Further reading

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


[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver
[2]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/logs.yaml
Expand Down
32 changes: 28 additions & 4 deletions content/en/opentelemetry/getting_started/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,41 @@
title: Getting Started with OpenTelemetry at Datadog
disable_toc: false
further_reading:
- link: "/opentelemetry/instrument/"
tag: "Documentation"
text: "Instrument Your Applications"
- link: "/opentelemetry/setup/"
tag: "Documentation"
text: "Send Data to Datadog"
- link: "/opentelemetry/guide"
tag: "Documentation"
text: "OpenTelemetry Guides"
---

{{< learning-center-callout header="Try \"Understanding OpenTelemetry\" in the Learning Center" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/understanding-opentelemetry" hide_image="false" >}}
Learn the fundamentals of OpenTelemetry, including its capabilities and benefits, key components, and how OTel and Datadog work together.
{{< /learning-center-callout >}}

## Overview

OpenTelemetry is an open source framework that provides standardized tools for collecting observability data from your applications. Datadog fully supports OpenTelemetry, allowing you to send your metrics, traces, and logs for powerful analysis and monitoring.

These guides provide two hands-on ways to learn how to send OpenTelemetry data to Datadog. Choose the tutorial that best fits your learning goal.

## Getting started tutorials

{{< whatsnext desc=" " >}}
{{< nextlink href="/opentelemetry/getting_started/datadog_example" >}}Getting Started with a Datadog Example Application{{< /nextlink >}}
{{< nextlink href="/opentelemetry/getting_started/otel_demo_to_datadog" >}}Getting Started with the OpenTelemetry Demo Application
{{< /nextlink >}}
{{< nextlink href="/opentelemetry/getting_started/datadog_example" >}}
<h3>Explore OTel with a Datadog Example</h3>
Follow a step-by-step guide using a simple, Datadog-provided Java application. This is the quickest way to see how the OTLP receiver and Datadog Exporter work together.
{{< /nextlink >}}
{{< nextlink href="/opentelemetry/getting_started/otel_demo_to_datadog" >}}
<h3>Set up the Official OpenTelemetry Demo</h3>
Deploy the community-maintained microservices demo application. This is a more comprehensive example that showcases a realistic, multi-service environment with traces, metrics, and logs.
{{< /nextlink >}}
{{< /whatsnext >}}


## Further reading

{{< partial name="whats-next/whats-next.html" >}}
{{< partial name="whats-next/whats-next.html" >}}
51 changes: 42 additions & 9 deletions content/en/opentelemetry/setup/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: Send Data to Datadog
aliases:
title: Send OpenTelemetry Data to Datadog
further_reading:
- link: "/opentelemetry/instrument/"
tag: "Documentation"
Expand All @@ -10,13 +9,47 @@ further_reading:
text: "How to select your OpenTelemetry deployment"
---

There are multiple ways to send OpenTelemetry data to Datadog. Choose the method that best fits your infrastructure and requirements:
This page describes all of the ways you can send OpenTelemetry (OTel) data to Datadog.

| Method | Best For | Key Benefits | Documentation |
|---------------------------------|--------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| <strong>OTel Collector</strong> | New or existing OTel users wanting a vendor-neutral setup | <ul><li>Complete vendor neutrality</li><li>Send traces, metrics, and logs to Datadog without installing the Datadog Agent or tracing libraries</li><li>Advanced processing capabilities (for example, [tail-based sampling][4])</li></ul> | [Send data using the OTel Collector][2] |
| <strong>Datadog Agent</strong> | Existing Datadog users or teams requiring Agent-based features:<ul><li><strong>[DDOT Collector][5]:</strong> Recommended for Kubernetes environments</li><li><strong>[OTLP Ingest][1]:</strong> Recommended for all other environments</li></ul> | <ul><li>Access to full Datadog Agent capabilities</li><li>Enhanced monitoring capabilities including:<ul><li>Fleet Automation</li><li>Live Container Monitoring</li><li>Kubernetes Explorer</li><li>Live Processes</li><li>Cloud Network Monitoring</li><li>Universal Service Monitoring</li><li>{{< translate key="integration_count" >}}+ Datadog integrations</li></ul></li></ul> | [Send data using the Datadog Agent][1] |
| <strong>Agentless Deployment</strong> | Situations requiring direct connection without additional infrastructure | <ul><li>Direct data transmission</li><li>No additional components needed</li></ul> | [Send data using the intake endpoint][3] |
## DDOT Collector (Recommended)

The Datadog Distribution of OpenTelemetry (DDOT) Collector is an open source solution that combines the flexibility of OpenTelemetry with the comprehensive observability capabilities of Datadog.

This approach gives you full control over OpenTelemetry pipelines while also providing access to powerful, Datadog Agent-based features, including:

- Fleet Automation
- Live Container Monitoring
- Kubernetes Explorer
- Live Processes
- Cloud Network Monitoring
- Universal Service Monitoring
- {{< translate key="integration_count" >}}+ Datadog integrations

{{< whatsnext desc=" " >}}
{{< nextlink href="/opentelemetry/setup/ddot_collector/install/" >}}
<h3>Install the DDOT Collector</h3>
Follow our guided setup to install the Collector and start sending your OpenTelemetry data to Datadog.
{{< /nextlink >}}
{{< /whatsnext >}}

## Other setup options

Alternative methods are available for specific use cases, such as maintaining a vendor-neutral pipeline or running in non-Kubernetes environments.

{{< whatsnext desc=" " >}}
{{< nextlink href="/opentelemetry/setup/collector_exporter/" >}}
<h3>Standalone OpenTelemetry Collector</h3>
Best for: Users who prefer to use OTel Collector distributions from the OpenTelemetry open source community or require advanced processing capabilities like tail-based sampling.
{{< /nextlink >}}
{{< nextlink href="/opentelemetry/setup/otlp_ingest_in_the_agent" >}}
<h3>OTLP Ingest in the Agent</h3>
Best for: Users on platforms other than Kubernetes Linux, or those who prefer a minimal configuration without managing Collector pipelines.
{{< /nextlink >}}
{{< nextlink href="/opentelemetry/setup/agentless" >}}
<h3>Agentless Deployment (Preview)</h3>
Best for: Situations requiring direct data transmission to Datadog's intake endpoint without any intermediary components.
{{< /nextlink >}}
{{< /whatsnext >}}

<div class="alert alert-info"><strong>Still not sure which setup is right for you?</strong><br> See the <a href="/opentelemetry/compatibility/">Feature Compatibility</a> table to understand which Datadog features are supported.</div>

Expand All @@ -26,7 +59,7 @@ There are multiple ways to send OpenTelemetry data to Datadog. Choose the method

[1]: /opentelemetry/setup/agent
[2]: /opentelemetry/setup/collector_exporter/
[3]: /opentelemetry/setup/intake_endpoint
[3]: /opentelemetry/setup/agentless
[4]: /opentelemetry/ingestion_sampling#tail-based-sampling
[5]: /opentelemetry/agent
[6]: /opentelemetry/setup/otlp_ingest_in_the_agent
Loading
Loading