diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml
index 7dbe3a08e02b6..697c655f22d7f 100644
--- a/config/_default/menus/main.en.yaml
+++ b/config/_default/menus/main.en.yaml
@@ -582,205 +582,283 @@ menu:
identifier: opentelemetry_top_level
pre: open-telemetry
parent: essentials_heading
- weight: 60000
+ weight: 70000
- name: Getting Started
- url: getting_started/opentelemetry/
- identifier: getting_started_otel_dd
+ url: /getting_started/opentelemetry
+ identifier: otel_guides_getting_started
parent: opentelemetry_top_level
weight: 1
- - name: Terms and Concepts
- url: opentelemetry/otel_terms/
- identifier: otel_terms
+ - name: Feature Compatibility
+ url: opentelemetry/compatibility/
+ identifier: otel_compatibility
parent: opentelemetry_top_level
weight: 2
- - name: OTLP Metrics Types
- url: opentelemetry/otlp_metric_types/
- parent: otel_terms
- weight: 201
- - name: Collector and Exporter
- url: opentelemetry/collector_exporter/
- identifier: otel_collector
+ - name: Instrument Your Applications
+ url: /opentelemetry/instrument/
+ identifier: otel-instrumentation
parent: opentelemetry_top_level
weight: 3
- - name: Deployment
- url: opentelemetry/collector_exporter/deployment/
- identifier: otel_collector_deployment
- parent: otel_collector
+ - name: OTel SDKs
+ url: opentelemetry/instrument/otel_sdks/
+ identifier: otel_sdks
+ parent: otel-instrumentation
weight: 301
- - name: Configuration
- url: opentelemetry/collector_exporter/configuration/
- identifier: otel_collector_configuration
- parent: otel_collector
+ - name: OTel APIs
+ url: /opentelemetry/instrument/api_support
+ identifier: otel-api-dd-sdk
+ parent: otel-instrumentation
weight: 302
- - name: OTLP Receiver
- url: opentelemetry/collector_exporter/otlp_receiver/
- identifier: otel_receiver
- parent: otel_collector_configuration
+ - name: Java
+ url: /opentelemetry/instrument/api_support/java
+ parent: otel-api-dd-sdk
weight: 3021
- - name: Hostnames and Tagging
- url: opentelemetry/collector_exporter/hostname_tagging/
- identifier: otel_hostnames_tagging
- parent: otel_collector_configuration
+ - name: Python
+ url: /opentelemetry/instrument/api_support/python
+ parent: otel-api-dd-sdk
weight: 3022
- - name: Batch and Memory Settings
- url: opentelemetry/collector_exporter/collector_batch_memory/
- identifier: otel_batch_memory
- parent: otel_collector_configuration
+ - name: Ruby
+ url: /opentelemetry/instrument/api_support/ruby
+ parent: otel-api-dd-sdk
weight: 3023
- - name: Log Collection
- url: /opentelemetry/collector_exporter/log_collection/
- identifier: otel_log_collection
- parent: otel_collector_configuration
+ - name: Go
+ url: /opentelemetry/instrument/api_support/go
+ parent: otel-api-dd-sdk
weight: 3024
- - name: Integrations
- url: opentelemetry/integrations/
- identifier: otel_integrations
+ - name: Node.js
+ url: /opentelemetry/instrument/api_support/nodejs
+ parent: otel-api-dd-sdk
+ weight: 3025
+ - name: PHP
+ url: /opentelemetry/instrument/api_support/php
+ parent: otel-api-dd-sdk
+ weight: 3026
+ - name: .NET
+ url: /opentelemetry/instrument/api_support/dotnet
+ parent: otel-api-dd-sdk
+ weight: 3027
+ - name: OTel Instrumentation Libraries
+ url: /opentelemetry/instrument/instrumentation_libraries/
+ identifier: otel_instrumentation_libraries
+ parent: otel-instrumentation
+ weight: 303
+ - name: Environment Variables
+ url: opentelemetry/config/environment_variable_support/
+ identifier: otel_env_var
+ parent: otel-instrumentation
+ weight: 304
+ - name: Send Data to Datadog
+ identifier: otel_collect
+ url: /opentelemetry/setup/
parent: opentelemetry_top_level
weight: 4
- - name: Trace Metrics
- url: opentelemetry/integrations/trace_metrics/
- identifier: otel_trace_metrics
- parent: otel_integrations
+ - name: OpenTelemetry Collector
+ url: /opentelemetry/setup/collector_exporter/
+ identifier: otel-setup-collector-exporter
+ parent: otel_collect
weight: 401
- - name: Runtime Metrics
- url: opentelemetry/integrations/runtime_metrics/
- identifier: otel_runtime_metrics
- parent: otel_integrations
+ - name: Deploy
+ url: /opentelemetry/setup/collector_exporter/deploy
+ identifier: otel-setup-collector-exporter-deploy
+ parent: otel-setup-collector-exporter
+ weight: 101
+ - name: Batch and Memory Settings
+ url: opentelemetry/config/collector_batch_memory/
+ identifier: otel_batch_memory
+ parent: otel-setup-collector-exporter
+ weight: 102
+ - name: Hostnames and Tagging
+ url: opentelemetry/config/hostname_tagging/
+ identifier: otel_hostnames_tagging
+ parent: otel-setup-collector-exporter
+ weight: 103
+ - name: Log Collection
+ url: opentelemetry/config/log_collection/
+ identifier: otel_log_collection
+ parent: otel-setup-collector-exporter
+ weight: 104
+ - 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/otlp_ingest_in_the_agent
+ identifier: otel-setup-otlp-ingest
+ parent: otel_collect
weight: 402
- - name: Collector Health Metrics
- url: opentelemetry/integrations/collector_health_metrics/
- identifier: otel_health_metrics
- parent: otel_integrations
+ - name: Direct OTLP Ingest
+ url: /opentelemetry/setup/intake_endpoint
+ identifier: otel-setup-intake-endpoint
+ parent: otel_collect
weight: 403
- - name: Docker Metrics
- url: opentelemetry/integrations/docker_metrics/
- identifier: otel_docker_metrics
- parent: otel_integrations
- weight: 404
- - name: Host Metrics
- url: opentelemetry/integrations/host_metrics/
- identifier: otel_host_metrics
- parent: otel_integrations
- weight: 405
- - name: Kafka Metrics
- url: opentelemetry/integrations/kafka_metrics/
- identifier: otel_kafka_metrics
- parent: otel_integrations
- weight: 406
- - name: Schema and Semantics
- url: opentelemetry/schema_semantics/
+ - name: Logs Endpoint
+ url: /opentelemetry/setup/intake_endpoint/otlp_logs
+ parent: otel-setup-intake-endpoint
+ weight: 301
+ - name: Metrics Endpoint
+ url: /opentelemetry/setup/intake_endpoint/otlp_metrics
+ parent: otel-setup-intake-endpoint
+ weight: 302
+ - name: Semantic Mapping
+ url: opentelemetry/mapping/
identifier: otel_schema
parent: opentelemetry_top_level
weight: 5
- name: Resource Attribute Mapping
- url: opentelemetry/schema_semantics/semantic_mapping/
+ url: opentelemetry/mapping/semantic_mapping/
identifier: otel_semantic_mapping
parent: otel_schema
weight: 501
- name: Metrics Mapping
- url: opentelemetry/schema_semantics/metrics_mapping/
+ url: opentelemetry/mapping/metrics_mapping/
identifier: otel_metrics_mapping
parent: otel_schema
weight: 502
- name: Infrastructure Host Mapping
- url: opentelemetry/schema_semantics/host_metadata/
+ url: opentelemetry/mapping/host_metadata/
identifier: otel_host_metadata
parent: otel_schema
weight: 503
- name: Hostname Mapping
- url: opentelemetry/schema_semantics/hostname/
+ url: opentelemetry/mapping/hostname/
identifier: otel_hostname
parent: otel_schema
weight: 504
- name: Service-entry Spans Mapping
- url: opentelemetry/schema_semantics/service_entry_spans/
+ url: opentelemetry/mapping/service_entry_spans/
identifier: otel_service_entry_spans
parent: otel_schema
- weight: 504
+ weight: 505
- name: Ingestion Sampling
- url: opentelemetry/ingestion_sampling_with_opentelemetry
- identifier: otel_sampling
+ url: opentelemetry/ingestion_sampling
+ identifier: otel_ingestion_sampling
parent: opentelemetry_top_level
weight: 6
- - name: Interoperability with Datadog
- url: opentelemetry/interoperability/
- identifier: otel_interoperability
+ - name: Correlate Data
+ url: opentelemetry/correlate/
+ identifier: otel_explore
parent: opentelemetry_top_level
weight: 7
- - name: OTLP Ingestion by the Agent
- url: opentelemetry/interoperability/otlp_ingest_in_the_agent/
- identifier: otel_ingest
- parent: otel_interoperability
+ - name: Correlate Logs and Traces
+ url: /opentelemetry/correlate/logs_and_traces/
+ identifier: otel_logs
+ parent: otel_explore
weight: 701
- - name: OTLP Logs Intake Endpoint
- url: /opentelemetry/otlp_logs
- identifier: otel_otlp_logs
- parent: otel_interoperability
- weight: 702
- - name: Trace Context Propagation
- url: /opentelemetry/interoperability/trace_context_propagation
- identifier: otel_propagation
- parent: otel_interoperability
- weight: 703
- - name: OpenTelemetry API Support
- url: /opentelemetry/interoperability/api_support
- identifier: otel_instrumentation
- parent: otel_interoperability
- weight: 704
- - name: OpenTelemetry Instrumentation Libraries
- url: /opentelemetry/interoperability/instrumentation_libraries/
- identifier: otel_instrumentation_libraries
- parent: otel_interoperability
- weight: 705
- - name: Environment Variable Configuration
- url: /opentelemetry/interoperability/environment_variable_support
- identifier: otel_env_var_configuration
- parent: otel_interoperability
- weight: 706
- name: Correlate RUM and Traces
- url: /opentelemetry/interoperability/connect_rum_and_traces
+ url: /opentelemetry/correlate/rum_and_traces/
identifier: otel_rum
- parent: otel_interoperability
- weight: 707
- - name: Correlate Logs and Traces
- url: /tracing/other_telemetry/connect_logs_and_traces/opentelemetry/
- identifier: otel_logs
- parent: otel_interoperability
- weight: 708
- - name: Compatibility
- url: opentelemetry/compatibility/
- identifier: otel_compatibility
+ parent: otel_explore
+ weight: 702
+ - name: Integrations
+ url: opentelemetry/integrations/
+ identifier: otel_integrations
parent: opentelemetry_top_level
weight: 8
+ - name: Trace Metrics
+ url: opentelemetry/integrations/trace_metrics/
+ identifier: otel_trace_metrics
+ parent: otel_integrations
+ weight: 801
+ - name: Runtime Metrics
+ url: opentelemetry/integrations/runtime_metrics/
+ identifier: otel_runtime_metrics
+ parent: otel_integrations
+ weight: 802
+ - name: Java
+ url: opentelemetry/integrations/runtime_metrics/java
+ identifier: otel_runtime_metrics_java
+ parent: otel_runtime_metrics
+ weight: 8021
+ - name: .NET
+ url: opentelemetry/integrations/runtime_metrics/dotnet
+ identifier: otel_runtime_metrics_dotnet
+ parent: otel_runtime_metrics
+ weight: 8022
+ - name: Go
+ url: opentelemetry/integrations/runtime_metrics/go
+ identifier: otel_runtime_metrics_go
+ parent: otel_runtime_metrics
+ weight: 8023
+ - name: Collector Health Metrics
+ url: opentelemetry/integrations/collector_health_metrics/
+ identifier: otel_health_metrics
+ parent: otel_integrations
+ weight: 803
+ - name: Docker Metrics
+ url: opentelemetry/integrations/docker_metrics/
+ identifier: otel_docker_metrics
+ parent: otel_integrations
+ weight: 804
+ - name: Host Metrics
+ url: opentelemetry/integrations/host_metrics/
+ identifier: otel_host_metrics
+ parent: otel_integrations
+ weight: 805
+ - name: Kafka Metrics
+ url: opentelemetry/integrations/kafka_metrics/
+ identifier: otel_kafka_metrics
+ parent: otel_integrations
+ weight: 806
- name: Troubleshooting
url: opentelemetry/troubleshooting/
identifier: otel_troubleshooting
parent: opentelemetry_top_level
weight: 9
- name: Guides and Resources
- url: opentelemetry/guide/
+ url: /opentelemetry/guide
identifier: otel_guides
parent: opentelemetry_top_level
weight: 10
- - name: Visualizing OTLP Histograms as Heatmaps
- url: opentelemetry/guide/otlp_histogram_heatmaps/
- identifier: otel_guides_heatmaps
+ - name: Produce Delta Temporality Metrics
+ url: /opentelemetry/guide/otlp_delta_temporality
parent: otel_guides
weight: 1001
- - name: Migrate to OpenTelemetry Collector version 0.95.0+
- url: opentelemetry/guide/migration/
- identifier: otel_guides_migration
+ - name: Send Data from the OTel Demo
+ url: /opentelemetry/guide/otel_demo_to_datadog
parent: otel_guides
weight: 1002
- - name: Producing Delta Temporality Metrics
- url: opentelemetry/guide/otlp_delta_temporality/
- identifier: otel_guides_delta_temporality
+ - name: Visualize Histograms as Heatmaps
+ url: /opentelemetry/guide/otlp_histogram_heatmaps
parent: otel_guides
weight: 1003
- - name: Sending Data from OpenTelemetry Demo
- url: /opentelemetry/guide/otel_demo_to_datadog/
+ - name: Migration Guides
+ url: /opentelemetry/guide/migrate/
+ identifier: otel_guides_migration
parent: otel_guides
weight: 1004
+ - name: Migrate to OTel Collector v0.95.0+
+ url: /opentelemetry/guide/migrate/collector_0_95_0
+ parent: otel_guides_migration
+ weight: 10041
+ - name: New Operation Name Mappings
+ url: /opentelemetry/guide/migrate/migrate_operation_names/
+ parent: otel_guides_migration
+ weight: 10042
+ - name: Reference
+ url: /opentelemetry/reference
+ identifier: otel_reference
+ parent: opentelemetry_top_level
+ weight: 11
+ - name: Terms and Concepts
+ url: /opentelemetry/reference/concepts
+ identifier: otel_concepts
+ parent: otel_reference
+ weight: 1101
+ - name: Trace Context Propagation
+ url: /opentelemetry/reference/trace_context_propagation
+ identifier: otel_propagation
+ parent: otel_reference
+ weight: 1102
+ - name: Trace IDs
+ url: /opentelemetry/reference/trace_ids
+ identifier: otel_trace_ids
+ parent: otel_reference
+ weight: 1103
+ - name: OTLP Metric Types
+ url: /opentelemetry/reference/otlp_metric_types
+ identifier: otel_otlp_metric_types
+ parent: otel_reference
+ weight: 1104
- name: Developers
url: developers/
pre: dev-code
diff --git a/content/en/getting_started/opentelemetry/_index.md b/content/en/getting_started/opentelemetry/_index.md
index 87b9b9c6e8a08..d6f50c98e6790 100644
--- a/content/en/getting_started/opentelemetry/_index.md
+++ b/content/en/getting_started/opentelemetry/_index.md
@@ -24,8 +24,8 @@ further_reading:
text: 'Forward logs from the OpenTelemetry Collector with the Datadog Exporter'
---
-{{< learning-center-callout header="Try 'Introduction to OpenTelemetry with Datadog' in the Learning Center" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/otel-with-datadog">}}
- Learn how to configure OpenTelemetry to export metrics, traces, and logs to Datadog, and explore the collected data within the platform.
+{{< 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
diff --git a/content/en/metrics/_index.md b/content/en/metrics/_index.md
index dca5e6595cdf5..e0ab149bdae58 100644
--- a/content/en/metrics/_index.md
+++ b/content/en/metrics/_index.md
@@ -19,7 +19,7 @@ This is an introduction to Metrics in Datadog and why they're useful. This secti
{{< whatsnext desc="Submit metrics to Datadog" >}}
{{< nextlink href="/metrics/custom_metrics">}}Submit Custom Metrics - Learn what custom metrics are and how to submit them.{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/otel_metrics" >}}Send OpenTelemetry Metrics - Configure the Datadog Agent or OpenTelemetry Collector.{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/reference/otel_metrics" >}}Send OpenTelemetry Metrics - Configure the Datadog Agent or OpenTelemetry Collector.{{< /nextlink >}}
{{< nextlink href="/metrics/types" >}}Metrics Types - Types of metrics that can be submitted to Datadog.{{< /nextlink >}}
{{< nextlink href="/metrics/distributions" >}}Distribution Metrics - Learn about Distribution Metrics and globally accurate percentiles.{{< /nextlink >}}
{{< nextlink href="/metrics/units" >}}Metrics Units - Learn about the units that can be associated with metrics.{{< /nextlink >}}
diff --git a/content/en/metrics/open_telemetry/otlp_metrics.md b/content/en/metrics/open_telemetry/otlp_metrics.md
index 3012dfd0aae4b..c48ea6d06bae1 100644
--- a/content/en/metrics/open_telemetry/otlp_metrics.md
+++ b/content/en/metrics/open_telemetry/otlp_metrics.md
@@ -11,4 +11,4 @@ aliases:
- /metrics/open_telemetry/
---
-{{< include-markdown "/opentelemetry/otel_metrics" >}}
\ No newline at end of file
+{{< include-markdown "/opentelemetry/reference/otel_metrics" >}}
\ No newline at end of file
diff --git a/content/en/metrics/summary.md b/content/en/metrics/summary.md
index 9dad717e245d6..15e07dc528a0b 100644
--- a/content/en/metrics/summary.md
+++ b/content/en/metrics/summary.md
@@ -245,11 +245,11 @@ This table shows the mapping between the metric origin as seen in the facet and
[14]: /security/cloud_security_management/
[15]: /database_monitoring/
[16]: /data_streams/
-[17]: /opentelemetry/collector_exporter/otel_collector_datadog_exporter/?tab=onahost
+[17]: /opentelemetry/setup/collector_exporter/
[18]: /opentelemetry/collector_exporter/
[19]: /network_monitoring/cloud_network_monitoring/
[20]: /observability_pipelines/
-[21]: /opentelemetry/interoperability/otlp_ingest_in_the_agent/?tab=host
+[21]: /opentelemetry/setup/otlp_ingest_in_the_agent/
[22]: /integrations/process/
[23]: /monitors/types/real_user_monitoring/
[24]: /serverless/
diff --git a/content/en/opentelemetry/_index.md b/content/en/opentelemetry/_index.md
index f18bf9e83f1f6..621bd731480e8 100644
--- a/content/en/opentelemetry/_index.md
+++ b/content/en/opentelemetry/_index.md
@@ -2,7 +2,17 @@
title: OpenTelemetry in Datadog
aliases:
- /tracing/setup_overview/open_standards/
+- /opentelemetry/interoperability/
further_reading:
+- link: "/opentelemetry/compatibility/"
+ tag: "Documentation"
+ text: "Feature Compatibility"
+- link: "/opentelemetry/instrument/"
+ tag: "Documentation"
+ text: "Instrument Your Applications"
+- link: "/opentelemetry/setup/"
+ tag: "Documentation"
+ text: "Send Data to Datadog"
- link: "https://www.datadoghq.com/blog/opentelemetry-instrumentation/"
tag: "Blog"
text: "Datadog's partnership with OpenTelemetry"
@@ -27,6 +37,10 @@ further_reading:
- link: "https://www.datadoghq.com/blog/opentelemetry-runtime-metrics-datadog/"
tag: "Blog"
text: "Monitor runtime metrics from OTel-instrumented apps with Datadog APM"
+- link: "https://learn.datadoghq.com/courses/otel-with-datadog"
+ tag: "Learning Center"
+ text: "Introduction to OpenTelemetry with Datadog"
+
algolia:
tags: ['opentelemetry', 'open telemetry', 'otel']
cascade:
@@ -34,33 +48,94 @@ cascade:
rank: 70
---
+{{< learning-center-callout hide_image="true" header="Try \"Introduction to OTel with Datadog\" in the Learning Center" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/otel-with-datadog">}}
+ Learn how to configure OpenTelemetry to export metrics, traces, and logs to Datadog, and explore the collected data in the platform.
+{{< /learning-center-callout >}}
+
## Overview
-[OpenTelemetry][1] is an open source observability framework that provides IT teams with standardized protocols and tools for collecting and routing telemetry data. Created as an incubator project by the [Cloud Native Computing Foundation][2] (CNCF), OpenTelemetry provides a consistent format for instrumenting, generating, gathering, and exporting application telemetry data—namely metrics, logs, and traces—to monitoring platforms for analysis and insight.
+[OpenTelemetry][1] (OTel) provides standardized protocols for collecting and routing telemetry data. Datadog supports multiple ways to collect and analyze telemetry data from OpenTelemetry-instrumented applications, whether you're using existing Datadog infrastructure or prefer a vendor-neutral setup.
+
+### Why OpenTelemetry with Datadog?
+
+Datadog provides advanced observability for all your application telemetry, regardless of its source. By supporting OpenTelemetry, Datadog offers:
+
+- **Flexibility and choice**: Use standardized instrumentation while maintaining freedom to adapt as your technology needs evolve.
+- **Comprehensive language support**: Consistently monitor applications across your entire tech stack.
+- **Unified instrumentation**: Maintain a single approach to instrumentation across your systems.
+- **Powerful analytics**: Combine OpenTelemetry's standardization with Datadog's robust analysis, visualization, and alerting capabilities.
+
+Whether you're already using OpenTelemetry or considering adoption, Datadog provides flexible options to meet your needs.
+
+### Key decisions
+
+There are two key decisions to make when using OpenTelemetry with Datadog:
+
+- [How to instrument your applications](#instrument-your-applications)
+- [How to send your data to Datadog](#send-opentelemetry-data-to-datadog)
+
+The features available to you depend on these choices. For example, using the OpenTelemetry API with the Datadog SDK provides access to more Datadog features than using the OpenTelemetry SDK alone.
+
+For more information, read [Feature Compatibility][9].
+
+## Instrument your applications
+
+There are several ways to instrument your applications with OpenTelemetry and Datadog. Each approach provides different features and levels of vendor neutrality.
-If your applications and services are instrumented with OpenTelemetry libraries, you can choose how to get traces, metrics, and logs data to the Datadog backend:
+- **Full OpenTelemetry**: Use the OpenTelemetry SDK and API for a vendor-neutral setup.
+- **OpenTelemetry API**: Use the OpenTelemetry API with Datadog's SDK implementation.
+- **OpenTelemetry instrumentation libraries**: Extend Datadog's observability to additional frameworks and technologies.
-1. [Send data to the OpenTelemetry collector, and use the Datadog exporter to forward it to Datadog][3], or
+For more information, see [Instrument Your Applications][8].
-2. [Ingest data with the Datadog Agent, which collects it for Datadog][4].
+## Send OpenTelemetry data to Datadog
-{{< img src="tracing/setup/open_standards/otel-flow.png" alt="Map options for generating telemetry data and sending it to observability products.">}}
+If your applications and services are instrumented with OpenTelemetry libraries, you can choose how to get traces, metrics, and logs data into Datadog.
-
+Not sure which setup is right for you? See the
Feature Compatibility table to understand which Datadog features are supported.
-Datadog supports the [W3C Trace Context standard][6], ensuring complete traces are captured even when a request travels between services that have been instrumented with different tools. Services need only be instrumented with any system, such as an OpenTelemetry library or Datadog tracing library, that follows the W3C Trace Context standard. Read [Propagating Trace Context][5] for more information.
+### 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
+
+{{< img src="/opentelemetry/setup/dd-agent-otlp-ingest.png" alt="Diagram: OpenTelemetry SDK sends data through OTLP protocol directly to the Datadog Agent, which forwards to Datadog's platform." style="width:100%;" >}}
+
+**Best for**: Existing Datadog users or teams requiring Agent-based features such as:
+
+- 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/otlp_ingest_in_the_agent" >}}Learn more about using OTLP ingest in the Agent{{< /nextlink >}}
+{{< /whatsnext >}}
+
+### Additional setup options
+
+For other setup options, including direct OTLP intake, see [Send Data to Datadog][7].
## Further reading
{{< partial name="whats-next/whats-next.html" >}}
[1]: https://opentelemetry.io/
-[2]: https://www.cncf.io/
-[3]: /opentelemetry/collector_exporter/
-[4]: /opentelemetry/otlp_ingest_in_the_agent/
-[5]: /tracing/trace_collection/trace_context_propagation/
-[6]: https://www.w3.org/TR/trace-context/
-
-{{< learning-center-callout header="Try Understanding OpenTelemetry in the Learning Center" btn_title="Enroll Now" btn_url="https://learn.datadoghq.com/courses/understanding-opentelemetry">}}
- Discover the fundamentals of OpenTelemetry, an open source standard for telemetry data collection. This course provides an overview of OpenTelemetry's capabilities and benefits, preparing you for integrating observability into your applications.
-{{< /learning-center-callout >}}
+[7]: /opentelemetry/setup
+[8]: /opentelemetry/instrument/
+[9]: /opentelemetry/compatibility/
\ No newline at end of file
diff --git a/content/en/opentelemetry/collector_exporter/_index.md b/content/en/opentelemetry/collector_exporter/_index.md
deleted file mode 100644
index 0fec72ef3b2c9..0000000000000
--- a/content/en/opentelemetry/collector_exporter/_index.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: OpenTelemetry Collector and Datadog Exporter
-aliases:
-- /tracing/setup_overview/open_standards/otel_collector_datadog_exporter/
-- /tracing/trace_collection/open_standards/otel_collector_datadog_exporter/
-- /opentelemetry/otel_collector_datadog_exporter/
-description: 'Send OpenTelemetry data to the OpenTelemetry Collector and Datadog Exporter'
-further_reading:
-- link: "https://opentelemetry.io/docs/collector/"
- tag: "External Site"
- text: "Collector documentation"
-- link: "https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/"
- tag: "Blog"
- text: "Send metrics, traces, and logs from OpenTelemetry Collector to Datadog using Datadog Exporter"
-- link: "https://www.datadoghq.com/blog/hivemq-opentelemetry-monitor-iot-applications/"
- tag: "Blog"
- text: "Use HiveMQ and OpenTelemetry to monitor IoT applications in Datadog"
-- link: "/metrics/open_telemetry/otlp_metric_types"
- tag: "Documentation"
- text: "OTLP Metrics Types"
----
-
-## Overview
-
-The OpenTelemetry Collector is a vendor-agnostic agent process for collecting and exporting telemetry data emitted by many processes. The [Datadog Exporter][1] for the OpenTelemetry Collector allows you to forward trace, metric, and logs data from OpenTelemetry SDKs to Datadog (without the Datadog Agent). It works with all supported languages, and you can [connect OpenTelemetry trace data with application logs][2].
-
-{{< img src="metrics/otel/datadog_exporter.png" alt="Application Instrumented Library, Cloud Integrations, and Other Monitoring Solutions (for example Prometheus) -> Datadog Exporter inside OpenTelemetry Collector -> Datadog" style="width:100%;">}}
-
-## Using the Collector
-
-The following documentation describes how to deploy and configure the Collector:
-
-{{< whatsnext desc=" " >}}
- {{< nextlink href="/opentelemetry/collector_exporter/deployment/" >}}Deployment{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/collector_exporter/configuration/" >}}Configuration{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/integrations/" >}}Integrations{{< /nextlink >}}
-{{< /whatsnext >}}
-
-## Out-of-the-box dashboards
-
-Datadog provides out-of-the-box dashboards that you can copy and customize. To use Datadog's out-of-the-box OpenTelemetry dashboards:
-
-1. Install the [OpenTelemetry integration][9].
-2. Go to **Dashboards** > **Dashboards list** and search for `opentelemetry`:
-
- {{< img src="metrics/otel/dashboard.png" alt="The Dashboards list, showing two OpenTelemetry out-of-the-box dashboards: Host Metrics and Collector Metrics." style="width:80%;">}}
-
-The **Host Metrics** dashboard is for data collected from the [host metrics receiver][7]. The **Collector Metrics** dashboard is for any other types of metrics collected, depending on which [metrics receiver][8] you choose to enable.
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
-
-[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter
-[2]: /tracing/other_telemetry/connect_logs_and_traces/opentelemetry
-[7]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver
-[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver
-[9]: https://app.datadoghq.com/integrations/otel
\ No newline at end of file
diff --git a/content/en/opentelemetry/collector_exporter/otel_collector_datadog_exporter.md b/content/en/opentelemetry/collector_exporter/otel_collector_datadog_exporter.md
deleted file mode 100644
index 3d4705bc0b77e..0000000000000
--- a/content/en/opentelemetry/collector_exporter/otel_collector_datadog_exporter.md
+++ /dev/null
@@ -1,692 +0,0 @@
----
-title: OpenTelemetry Collector
-aliases:
-- /tracing/setup_overview/open_standards/otel_collector_datadog_exporter/
-- /tracing/trace_collection/open_standards/otel_collector_datadog_exporter/
-description: 'Send OpenTelemetry data to the OpenTelemetry collector and Datadog exporter'
-further_reading:
-- link: "https://opentelemetry.io/docs/collector/"
- tag: "External Site"
- text: "Collector documentation"
-- link: "https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/"
- tag: "Blog"
- text: "Send metrics, traces, and logs from OpenTelemetry Collector to Datadog using Datadog Exporter"
-- link: "https://www.datadoghq.com/blog/hivemq-opentelemetry-monitor-iot-applications/"
- tag: "Blog"
- text: "Use HiveMQ and OpenTelemetry to monitor IoT applications in Datadog"
-- link: "/metrics/open_telemetry/otlp_metric_types"
- tag: "Documentation"
- text: "OTLP Metrics Types"
----
-
-The OpenTelemetry Collector receives, processes, and exports telemetry data from your applications. To send this data to Datadog, you need to configure several components within the Collector:
-
-- [Datadog Exporter][1]: Forwards trace, metric, and logs data from OpenTelemetry SDKs on to Datadog (without the Datadog Agent).
-- [Datadog Connector][29]: Calculates Trace Metrics from collected span data.
-
-{{< img src="metrics/otel/datadog_exporter.png" alt="Application Instrumented Library, Cloud Integrations, and Other Monitoring Solutions (for example Prometheus) -> Datadog Exporter inside OpenTelemetry Collector -> Datadog" style="width:100%;">}}
-
-## Setting up the OpenTelemetry Collector
-
-To run the OpenTelemetry Collector with the Datadog Exporter and Datadog Connector:
-
-### Step 1 - Download the OpenTelemetry Collector
-
-Download the latest release of the OpenTelemetry Collector Contrib distribution, from [the project's repository][3].
-
-### Step 2 - Configure the Datadog Exporter and Connector
-
-To use the Datadog Exporter, add it to your [OpenTelemetry Collector configuration][4]. Create a configuration file and name it `collector.yaml`. Use the example file which provides a basic configuration that is ready to use after you set your Datadog API key as the `DD_API_KEY` environment variable:
-
-{{% otel-endpoint-note %}}
-
-```yaml
-receivers:
- otlp:
- protocols:
- http:
- endpoint: 0.0.0.0:4318
- grpc:
- endpoint: 0.0.0.0:4317
- # The hostmetrics receiver is required to get correct infrastructure metrics in Datadog.
- hostmetrics:
- collection_interval: 10s
- scrapers:
- paging:
- metrics:
- system.paging.utilization:
- enabled: true
- cpu:
- metrics:
- system.cpu.utilization:
- enabled: true
- disk:
- filesystem:
- metrics:
- system.filesystem.utilization:
- enabled: true
- load:
- memory:
- network:
- processes:
- # The prometheus receiver scrapes metrics needed for the OpenTelemetry Collector Dashboard.
- prometheus:
- config:
- scrape_configs:
- - job_name: 'otelcol'
- scrape_interval: 10s
- static_configs:
- - targets: ['0.0.0.0:8888']
-
- filelog:
- include_file_path: true
- poll_interval: 500ms
- include:
- - /var/log/**/*example*/*.log
-
-processors:
- batch:
- send_batch_max_size: 100
- send_batch_size: 10
- timeout: 10s
-
-connectors:
- datadog/connector:
-
-exporters:
- datadog/exporter:
- api:
- site: {{< region-param key="dd_site" >}}
- key: ${env:DD_API_KEY}
-
-service:
- pipelines:
- metrics:
- receivers: [hostmetrics, prometheus, otlp, datadog/connector]
- processors: [batch]
- exporters: [datadog/exporter]
- traces:
- receivers: [otlp]
- processors: [batch]
- exporters: [datadog/connector, datadog/exporter]
- logs:
- receivers: [otlp, filelog]
- processors: [batch]
- exporters: [datadog/exporter]
-```
-
-The above configuration enables the receiving of OTLP data from OpenTelemetry instrumentation libraries over HTTP and gRPC, and sets up a [batch processor][5], which is mandatory for any non-development environment. Note that you may get `413 - Request Entity Too Large` errors if you batch too much telemetry data in the batch processor.
-
-The exact configuration of the batch processor depends on your specific workload as well as the signal types. Datadog intake has different payload size limits for the 3 signal types:
-- Trace intake: 3.2MB
-- Log intake: [5MB uncompressed][6]
-- Metrics V2 intake: [500KB or 5MB after decompression][7]
-
-#### Advanced configuration
-
-[This fully documented example configuration file][8] illustrates all possible configuration options for the Datadog Exporter. There may be other options relevant to your deployment, such as `api::site` or the ones on the `host_metadata` section.
-
-### Step 3 - Configure your application
-
-To get better metadata for traces and for smooth integration with Datadog:
-
-- **Use resource detectors**: If they are provided by the language SDK, attach container information as resource attributes. For example, in Go, use the [`WithContainer()`][9] resource option.
-
-- **Apply [Unified Service Tagging][10]**: Make sure you've configured your application with the appropriate resource attributes for unified service tagging. This ties Datadog telemetry together with tags for service name, deployment environment, and service version. The application should set these tags using the OpenTelemetry semantic conventions: `service.name`, `deployment.environment`, and `service.version`.
-
-### Step 4 - Configure the logger for your application
-
-{{< img src="logs/log_collection/otel_collector_logs.png" alt="A diagram showing the host, container, or application sending data to the filelog receiver in the collector and the Datadog Exporter in the collector sending the data to the Datadog backend" style="width:100%;">}}
-
-Since the OpenTelemetry SDKs' logging functionality is not fully supported (see your specific language in the [OpenTelemetry documentation][11] for more information), Datadog recommends using a standard logging library for your application. Follow the language-specific [Log Collection documentation][12] to set up the appropriate logger in your application. Datadog strongly encourages setting up your logging library to output your logs in JSON to avoid the need for [custom parsing rules][13].
-
-#### Configure the filelog receiver
-
-Configure the filelog receiver using [operators][14]. For example, if there is a service `checkoutservice` that is writing logs to `/var/log/pods/services/checkout/0.log`, a sample log might look like this:
-
-```
-{"level":"info","message":"order confirmation email sent to \"jack@example.com\"","service":"checkoutservice","span_id":"197492ff2b4e1c65","timestamp":"2022-10-10T22:17:14.841359661Z","trace_id":"e12c408e028299900d48a9dd29b0dc4c"}
-```
-
-Example filelog configuration:
-
-```
-filelog:
- include:
- - /var/log/pods/**/*checkout*/*.log
- start_at: end
- poll_interval: 500ms
- operators:
- - id: parse_log
- type: json_parser
- parse_from: body
- - id: trace
- type: trace_parser
- trace_id:
- parse_from: attributes.trace_id
- span_id:
- parse_from: attributes.span_id
- attributes:
- ddtags: env:staging
-```
-
-- `include`: The list of files the receiver tails
-- `start_at: end`: Indicates to read new content that is being written
-- `poll_internal`: Sets the poll frequency
-- Operators:
- - `json_parser`: Parses JSON logs. By default, the filelog receiver converts each log line into a log record, which is the `body` of the logs' [data model][15]. Then, the `json_parser` converts the JSON body into attributes in the data model.
- - `trace_parser`: Extract the `trace_id` and `span_id` from the log to correlate logs and traces in Datadog.
-
-#### Remap OTel's `service.name` attribute to `service` for logs
-
-For Datadog Exporter versions 0.83.0 and later, the `service` field of OTel logs is populated as [OTel semantic convention][25] `service.name`. However, `service.name` is not one of the default [service attributes][26] in Datadog's log preprocessing.
-
-To get the `service` field correctly populated in your logs, you can specify `service.name` to be the source of a log's service by setting a [log service remapper processor][27].
-
-
-Optional: Using Kubernetes
-
-There are multiple ways to deploy the OpenTelemetry Collector and Datadog Exporter in a Kubernetes infrastructure. For the filelog receiver to work, the [Agent/DaemonSet deployment][16] is the recommended deployment method.
-
-In containerized environments, applications write logs to `stdout` or `stderr`. Kubernetes collects the logs and writes them to a standard location. You need to mount the location on the host node into the Collector for the filelog receiver. Below is an [extension example][17] with the mounts required for sending logs.
-
-```
-apiVersion: apps/v1
-metadata:
- name: otel-agent
- labels:
- app: opentelemetry
- component: otel-collector
-spec:
- template:
- metadata:
- labels:
- app: opentelemetry
- component: otel-collector
- spec:
- containers:
- - name: collector
- command:
- - "/otelcol-contrib"
- - "--config=/conf/otel-agent-config.yaml"
- image: otel/opentelemetry-collector-contrib:0.71.0
- env:
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- # The k8s.pod.ip is used to associate pods for k8sattributes
- - name: OTEL_RESOURCE_ATTRIBUTES
- value: "k8s.pod.ip=$(POD_IP)"
- ports:
- - containerPort: 4318 # default port for OpenTelemetry HTTP receiver.
- hostPort: 4318
- - containerPort: 4317 # default port for OpenTelemetry gRPC receiver.
- hostPort: 4317
- - containerPort: 8888 # Default endpoint for querying metrics.
- volumeMounts:
- - name: otel-agent-config-vol
- mountPath: /conf
- - name: varlogpods
- mountPath: /var/log/pods
- readOnly: true
- - name: varlibdockercontainers
- mountPath: /var/lib/docker/containers
- readOnly: true
- volumes:
- - name: otel-agent-config-vol
- configMap:
- name: otel-agent-conf
- items:
- - key: otel-agent-config
- path: otel-agent-config.yaml
- # Mount nodes log file location.
- - name: varlogpods
- hostPath:
- path: /var/log/pods
- - name: varlibdockercontainers
- hostPath:
- path: /var/lib/docker/containers
-```
-
-
-### Step 5 - Run the collector
-
-{{< tabs >}}
-{{% tab "On a host" %}}
-
-Run the collector, specifying the configuration file using the `--config` parameter:
-
-```
-otelcontribcol_linux_amd64 --config collector.yaml
-```
-
-{{% /tab %}}
-
-{{% tab "Docker (localhost)" %}}
-
-To run the OpenTelemetry Collector as a Docker image and receive traces from the same host:
-
-1. Choose a published Docker image such as [`otel/opentelemetry-collector-contrib`][1].
-
-2. Determine which ports to open on your container so that OpenTelemetry traces are sent to the OpenTelemetry Collector. By default, traces are sent over gRPC on port 4317. If you don't use gRPC, use port 4318.
-
-3. Run the container and expose the necessary port, using the previously defined `collector.yaml` file. For example, considering you are using port 4317:
-
- ```
- $ docker run \
- -p 4317:4317 \
- --hostname $(hostname) \
- -v $(pwd)/otel_collector_config.yaml:/etc/otelcol-contrib/config.yaml \
- otel/opentelemetry-collector-contrib
- ```
-
-
-[1]: https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags
-
-{{% /tab %}}
-
-{{% tab "Docker (other containers)" %}}
-
-To run the OpenTelemetry Collector as a Docker image and receive traces from other containers:
-
-1. Create a Docker network:
-
- ```
- docker network create
- ```
-
-2. Run the OpenTelemetry Collector and application containers as part of the same network.
-
- ```
- # Run the OpenTelemetry Collector
- docker run -d --name opentelemetry-collector \
- --network \
- --hostname $(hostname) \
- -v $(pwd)/otel_collector_config.yaml:/etc/otelcol-contrib/config.yaml \
- otel/opentelemetry-collector-contrib
- ```
-
- When running the application container, ensure that the environment variable `OTEL_EXPORTER_OTLP_ENDPOINT` is configured to use the appropriate hostname for the OpenTelemetry Collector. In the example below, this is `opentelemetry-collector`.
-
- ```
- # Run the application container
- docker run -d --name app \
- --network \
- --hostname $(hostname) \
- -e OTEL_EXPORTER_OTLP_ENDPOINT=http://opentelemetry-collector:4317 \
- company/app:latest
- ```
-
-{{% /tab %}}
-
-{{% tab "Kubernetes (DaemonSet)" %}}
-
-Using a DaemonSet is the most common and recommended way to configure OpenTelemetry collection in a Kubernetes environment. To deploy the OpenTelemetry Collector and Datadog Exporter in a Kubernetes infrastructure:
-
-1. Use this [full example of configuring the OpenTelemetry Collector using the Datadog Exporter as a DaemonSet][1], including the application configuration example.
-
- Note especially some [essential configuration options from the example][2], which ensure the essential ports of the DaemonSet are exposed and accessible to your application:
-
- ```yaml
- # ...
- ports:
- - containerPort: 4318 # default port for OpenTelemetry HTTP receiver.
- hostPort: 4318
- - containerPort: 4317 # default port for OpenTelemetry gRPC receiver.
- hostPort: 4317
- - containerPort: 8888 # Default endpoint for querying Collector observability metrics.
- # ...
- ```
-
- If you do not need both the standard HTTP and gRPC ports for your application, it is fine to remove them.
-
-2. Collect valuable Kubernetes attributes, which are used for Datadog container tagging, report the Pod IP as a resource attribute, [as shown in the example][3]:
-
- ```yaml
- # ...
- env:
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- # The k8s.pod.ip is used to associate pods for k8sattributes
- - name: OTEL_RESOURCE_ATTRIBUTES
- value: "k8s.pod.ip=$(POD_IP)"
- # ...
- ```
-
- This ensures that [Kubernetes Attributes Processor][4] which is used in [the config map][5] is able to extract the necessary metadata to attach to traces. There are additional [roles][6] that need to be set to allow access to this metadata. [The example][1] is complete, ready to use, and has the correct roles set up.
-
-3. Provide your [application container][7]. To configure your application container, ensure that the correct OTLP endpoint hostname is used. The OpenTelemetry Collector runs as a DaemonSet, so the current host needs to be targeted. Set your application container's `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable correctly, as in the [example chart][8]:
-
- ```yaml
- # ...
- env:
- - name: HOST_IP
- valueFrom:
- fieldRef:
- fieldPath: status.hostIP
- # The application SDK must use this environment variable in order to successfully
- # connect to the DaemonSet's collector.
- - name: OTEL_EXPORTER_OTLP_ENDPOINT
- value: "http://$(HOST_IP):4318"
- # ...
- ```
-
-
-[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722/exporter/datadogexporter/examples/k8s-chart
-[2]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml#L41-L46
-[3]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml#L33-L40
-[4]: https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor#section-readme
-[5]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/configmap.yaml#L26-L27
-[6]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/roles.yaml
-[7]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/deployment.yaml#L21-L22
-[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/deployment.yaml#L24-L32
-
-{{% /tab %}}
-
-{{% tab "Kubernetes (Gateway)" %}}
-
-To deploy the OpenTelemetry Collector and Datadog Exporter in a Kubernetes Gateway deployment:
-
-1. Use this [full example of configuring the OpenTelemetry Collector using the Datadog Exporter as a DaemonSet][1], including the application configuration example.
-
- Note especially some [essential configuration options from the example][2], which ensure the essential ports of the DaemonSet are exposed and accessible to your application:
-
- ```yaml
- # ...
- ports:
- - containerPort: 4318 # default port for OpenTelemetry HTTP receiver.
- hostPort: 4318
- - containerPort: 4317 # default port for OpenTelemetry gRPC receiver.
- hostPort: 4317
- - containerPort: 8888 # Default endpoint for querying Collector observability metrics.
- # ...
- ```
-
- If you do not need both the standard HTTP and gRPC ports for your application, it is fine to remove them.
-
-2. Collect valuable Kubernetes attributes, which are used for Datadog container tagging, report the Pod IP as a resource attribute, [as shown in the example][3]:
-
- ```yaml
- # ...
- env:
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- # The k8s.pod.ip is used to associate pods for k8sattributes
- - name: OTEL_RESOURCE_ATTRIBUTES
- value: "k8s.pod.ip=$(POD_IP)"
- # ...
- ```
-
- This ensures that [Kubernetes Attributes Processor][4] which is used in [the config map][5] is able to extract the necessary metadata to attach to traces. There are additional [roles][6] that need to be set to allow access to this metadata. [The example][1] is complete, ready to use, and has the correct roles set up.
-
-3. Provide your [application container][7]. To configure your application container, ensure that the correct OTLP endpoint hostname is used. The OpenTelemetry Collector runs as a DaemonSet, so the current host needs to be targeted. Set your application container's `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable correctly, as in the [example chart][8]:
-
- ```yaml
- # ...
- env:
- - name: HOST_IP
- valueFrom:
- fieldRef:
- fieldPath: status.hostIP
- # The application SDK must use this environment variable in order to successfully
- # connect to the DaemonSet's collector.
- - name: OTEL_EXPORTER_OTLP_ENDPOINT
- value: "http://$(HOST_IP):4318"
- # ...
- ```
-
-4. Change the DaemonSet to include an [OTLP exporter][9] instead of the Datadog Exporter [currently in place][10]:
-
- ```yaml
- # ...
- exporters:
- otlp:
- endpoint: ":4317"
- # ...
- ```
-
-5. Make sure that the service pipelines use this exporter, instead of the Datadog one that [is in place in the example][11]:
-
- ```yaml
- # ...
- service:
- pipelines:
- metrics:
- receivers: [hostmetrics, otlp]
- processors: [resourcedetection, k8sattributes, batch]
- exporters: [otlp]
- traces:
- receivers: [otlp]
- processors: [resourcedetection, k8sattributes, batch]
- exporters: [otlp]
- # ...
- ```
-
- This ensures that each agent forwards its data via the OTLP protocol to the Collector Gateway.
-
-6. Replace `GATEWAY_HOSTNAME` with the address of your OpenTelemetry Collector Gateway.
-
-7. To ensure that Kubernetes metadata continues to be applied to traces, tell the [`k8sattributes` processor][12] to forward the Pod IP to the Gateway Collector so that it can obtain the metadata:
-
- ```yaml
- # ...
- k8sattributes:
- passthrough: true
- # ...
- ```
-
- For more information about the `passthrough` option, read [its documentation][13].
-
-8. Make sure that the Gateway Collector's configuration uses the same Datadog Exporter settings that have been replaced by the OTLP exporter in the agents. For example (where `` is your site, {{< region-param key="dd_site" code="true" >}}):
-
- ```yaml
- # ...
- exporters:
- datadog:
- api:
- site:
- key: ${env:DD_API_KEY}
- # ...
- ```
-
-
-[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722/exporter/datadogexporter/examples/k8s-chart
-[2]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml#L41-L46
-[3]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml#L33-L40
-[4]: https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor#section-readme
-[5]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/configmap.yaml#L26-L27
-[6]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/roles.yaml
-[7]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/deployment.yaml#L21-L22
-[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/deployment.yaml#L24-L32
-[9]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlpexporter/README.md#otlp-grpc-exporter
-[10]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/configmap.yaml#L15-L18
-[11]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/configmap.yaml#L30-L39
-[12]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/2c32722e37f171bab247684e7c07e824429a8121/exporter/datadogexporter/examples/k8s-chart/configmap.yaml#L27
-[13]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/e79d917/processor/k8sattributesprocessor/doc.go#L196-L220
-
-{{% /tab %}}
-
-{{% tab "Kubernetes (Operator)" %}}
-
-To use the OpenTelemetry Operator:
-
-1. Follow the [official documentation for deploying the OpenTelemetry Operator][1]. As described there, deploy the certificate manager in addition to the Operator.
-
-2. Configure the Operator using one of the OpenTelemetry Collector standard Kubernetes configurations:
- * [Daemonset deployment][2] - Use the DaemonSet deployment if you want to ensure you receive host metrics.
- * [Gateway deployment][3]
-
- For example:
-
- ```yaml
- apiVersion: opentelemetry.io/v1alpha1
- kind: OpenTelemetryCollector
- metadata:
- name: opentelemetry-example
- spec:
- mode: daemonset
- hostNetwork: true
- image: otel/opentelemetry-collector-contrib
- env:
- - name: DD_API_KEY
- valueFrom:
- secretKeyRef:
- key: datadog_api_key
- name: opentelemetry-example-otelcol-dd-secret
- config:
- receivers:
- otlp:
- protocols:
- http:
- endpoint: 0.0.0.0:4318
- grpc:
- endpoint: 0.0.0.0:4317
- hostmetrics:
- collection_interval: 10s
- scrapers:
- paging:
- metrics:
- system.paging.utilization:
- enabled: true
- cpu:
- metrics:
- system.cpu.utilization:
- enabled: true
- disk:
- filesystem:
- metrics:
- system.filesystem.utilization:
- enabled: true
- load:
- memory:
- network:
- processors:
- k8sattributes:
- batch:
- send_batch_max_size: 100
- send_batch_size: 10
- timeout: 10s
- connectors:
- datadog/connector:
- exporters:
- datadog:
- api:
- key: ${env:DD_API_KEY}
- service:
- pipelines:
- metrics:
- receivers: [hostmetrics, otlp]
- processors: [k8sattributes, batch]
- exporters: [datadog]
- traces:
- receivers: [otlp]
- processors: [k8sattributes, batch]
- exporters: [datadog]
- ```
-
-[1]: https://github.com/open-telemetry/opentelemetry-operator#readme
-[2]: /opentelemetry/otel_collector_datadog_exporter/?tab=kubernetesdaemonset#4-run-the-collector
-[3]: /opentelemetry/otel_collector_datadog_exporter/?tab=kubernetesgateway#4-run-the-collector
-
-{{% /tab %}}
-{{< /tabs >}}
-
-
-### Logs and traces correlation
-
-If you are using the Datadog Exporter to also send OpenTelemetry traces to Datadog, use the `trace_parser` operator to extract the `trace_id` from each trace and add it to the associated logs. Datadog automatically correlates the related logs and traces. See [Connect OpenTelemetry Traces and Logs][18] for more information.
-
-{{< img src="logs/log_collection/logs_traces_correlation.png" alt="The trace panel showing a list of logs correlated with the trace" style="width:70%;">}}
-
-### Hostname resolution
-
-See [Mapping OpenTelemetry Semantic Conventions to Hostnames][28] to understand how the hostname is resolved.
-
-## Deployment-based limitations
-
-The OpenTelemetry Collector has [two primary deployment methods][20]: Agent and Gateway. Depending on your deployment method, some components are not available.
-
-| Deployment mode | Host metrics | Kubernetes orchestration metrics | Traces | Logs auto-ingestion |
-| --- | --- | --- | --- | --- |
-| as Gateway | | {{< X >}} | {{< X >}} | |
-| as Agent | {{< X >}} | {{< X >}} | {{< X >}} | {{< X >}} |
-
-## Out-of-the-box dashboards
-
-Datadog provides out-of-the-box dashboards that you can copy and customize. To use Datadog's out-of-the-box OpenTelemetry dashboards:
-
-1. Install the [OpenTelemetry integration][21].
-2. Go to **Dashboards** > **Dashboards list** and search for `opentelemetry`:
-
- {{< img src="metrics/otel/dashboard.png" alt="The Dashboards list, showing two OpenTelemetry out-of-the-box dashboards: Host Metrics and Collector Metrics." style="width:80%;">}}
-
-The **Host Metrics** dashboard is for data collected from the [host metrics receiver][22]. The **Collector Metrics** dashboard is for any other types of metrics collected, depending on which [metrics receiver][23] you choose to enable.
-
-
-### Containers overview dashboard
-
-This feature is affected by
Docker deprecation in Kubernetes and you might not be able to use
dockerstatsreceiver
for OpenTelemetry with Kubernetes version 1.24+.
-
-The [Docker Stats][24] receiver generates container metrics for the OpenTelemetry Collector. The Datadog Exporter translates container metrics to their Datadog counterparts.
-
-Use the following configuration to enable additional attributes on the Docker Stats receiver that populates the containers overview dashboard:
-
-```yaml
- docker_stats:
- metrics:
- container.network.io.usage.rx_packets:
- enabled: true
- container.network.io.usage.tx_packets:
- enabled: true
- container.cpu.usage.system:
- enabled: true
- container.memory.rss:
- enabled: true
- container.blockio.io_serviced_recursive:
- enabled: true
- container.uptime:
- enabled: true
- container.memory.hierarchical_memory_limit:
- enabled: true
-```
-
-The minimum required OpenTelemetry Collector version that supports this feature is v0.78.0.
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
-
-[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter
-[2]: /tracing/other_telemetry/connect_logs_and_traces/opentelemetry
-[3]: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/latest
-[4]: https://opentelemetry.io/docs/collector/configuration/
-[5]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/processor/batchprocessor/README.md
-[6]: https://docs.datadoghq.com/api/latest/logs/
-[7]: https://docs.datadoghq.com/api/latest/metrics/#submit-metrics
-[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yaml
-[9]: https://pkg.go.dev/go.opentelemetry.io/otel/sdk/resource#WithContainer
-[10]: /getting_started/tagging/unified_service_tagging/
-[11]: https://opentelemetry.io/docs/instrumentation/
-[12]: /logs/log_collection/?tab=host
-[13]: /logs/log_configuration/parsing/
-[14]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/stanza/docs/operators
-[15]: https://opentelemetry.io/docs/reference/specification/logs/data-model/
-[16]: https://opentelemetry.io/docs/collector/deployment/#agent
-[17]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml
-[18]: /tracing/other_telemetry/connect_logs_and_traces/opentelemetry/?tab=python
-[19]: https://opentelemetry.io/docs/reference/specification/resource/sdk/#sdk-provided-resource-attributes
-[20]: https://opentelemetry.io/docs/collector/deployment/
-[21]: https://app.datadoghq.com/integrations/otel
-[22]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver
-[23]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver
-[24]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/dockerstatsreceiver
-[25]: https://opentelemetry.io/docs/specs/semconv/resource/#service
-[26]: https://docs.datadoghq.com/logs/log_configuration/pipelines/?tab=service#service-attribute
-[27]: https://docs.datadoghq.com/logs/log_configuration/processors/?tab=ui#service-remapper
-[28]: /opentelemetry/schema_semantics/hostname/
-[29]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/datadogconnector
diff --git a/content/en/opentelemetry/config/_index.md b/content/en/opentelemetry/config/_index.md
new file mode 100644
index 0000000000000..a85a7a48c74a7
--- /dev/null
+++ b/content/en/opentelemetry/config/_index.md
@@ -0,0 +1,23 @@
+---
+title: OpenTelemetry Configuration
+further_reading:
+- link: "https://www.datadoghq.com/blog/opentelemetry-instrumentation/"
+ tag: "Blog"
+ text: "Datadog's partnership with OpenTelemetry"
+---
+
+## Overview
+
+Configure your OpenTelemetry setup to optimize data collection and ensure proper integration with Datadog. Choose the configuration area you need to adjust:
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="/opentelemetry/config/collector_batch_memory/" >}}Edit batch and memory configuration{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/config/environment_variable_support/" >}}Configure OpenTelemetry behavior using environment variables supported by Datadog{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/config/hostname_tagging/" >}}Set up host identification and tag attribution for your telemetry{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/config/log_collection/" >}}Configure log collection and processing for OpenTelemetry data{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/config/otlp_receiver/" >}}Configure the OTLP receiver in your Collector to collect metrics, logs, and traces{{< /nextlink >}}
+{{< /whatsnext >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/collector_exporter/collector_batch_memory.md b/content/en/opentelemetry/config/collector_batch_memory.md
similarity index 96%
rename from content/en/opentelemetry/collector_exporter/collector_batch_memory.md
rename to content/en/opentelemetry/config/collector_batch_memory.md
index a9c40aa207aab..8b9b9a50ff67d 100644
--- a/content/en/opentelemetry/collector_exporter/collector_batch_memory.md
+++ b/content/en/opentelemetry/config/collector_batch_memory.md
@@ -1,5 +1,7 @@
---
title: Batch and Memory Settings
+aliases:
+- /opentelemetry/collector_exporter/collector_batch_memory
further_reading:
- link: "/opentelemetry/collector_exporter/"
tag: "Documentation"
diff --git a/content/en/opentelemetry/interoperability/environment_variable_support.md b/content/en/opentelemetry/config/environment_variable_support.md
similarity index 99%
rename from content/en/opentelemetry/interoperability/environment_variable_support.md
rename to content/en/opentelemetry/config/environment_variable_support.md
index 80564cded2868..f309e786c3ca3 100644
--- a/content/en/opentelemetry/interoperability/environment_variable_support.md
+++ b/content/en/opentelemetry/config/environment_variable_support.md
@@ -1,5 +1,7 @@
---
title: Using OpenTelemetry Environment Variables with Datadog SDKs
+aliases:
+ - /opentelemetry/interoperability/environment_variable_support
further_reading:
- link: '/tracing/trace_collection/library_config/dotnet-core'
tag: 'Documentation'
diff --git a/content/en/opentelemetry/collector_exporter/hostname_tagging.md b/content/en/opentelemetry/config/hostname_tagging.md
similarity index 99%
rename from content/en/opentelemetry/collector_exporter/hostname_tagging.md
rename to content/en/opentelemetry/config/hostname_tagging.md
index 401d839c3f89a..8dc6e0436780e 100644
--- a/content/en/opentelemetry/collector_exporter/hostname_tagging.md
+++ b/content/en/opentelemetry/config/hostname_tagging.md
@@ -1,5 +1,7 @@
---
title: Hostname and Tagging
+aliases:
+- /opentelemetry/collector_exporter/hostname_tagging
further_reading:
- link: "/opentelemetry/collector_exporter/"
tag: "Documentation"
diff --git a/content/en/opentelemetry/collector_exporter/log_collection.md b/content/en/opentelemetry/config/log_collection.md
similarity index 99%
rename from content/en/opentelemetry/collector_exporter/log_collection.md
rename to content/en/opentelemetry/config/log_collection.md
index cb3e19ec18e98..d82375edcd3fd 100644
--- a/content/en/opentelemetry/collector_exporter/log_collection.md
+++ b/content/en/opentelemetry/config/log_collection.md
@@ -2,6 +2,7 @@
title: Log Collection
aliases:
- /opentelemetry/integrations/log_collection/
+- /opentelemetry/collector_exporter/log_collection
further_reading:
- link: "/opentelemetry/collector_exporter/"
tag: "Documentation"
diff --git a/content/en/opentelemetry/collector_exporter/otlp_receiver.md b/content/en/opentelemetry/config/otlp_receiver.md
similarity index 99%
rename from content/en/opentelemetry/collector_exporter/otlp_receiver.md
rename to content/en/opentelemetry/config/otlp_receiver.md
index 8d3ca423b8834..5126a435eb600 100644
--- a/content/en/opentelemetry/collector_exporter/otlp_receiver.md
+++ b/content/en/opentelemetry/config/otlp_receiver.md
@@ -1,5 +1,7 @@
---
title: OTLP Receiver
+aliases:
+- /opentelemetry/collector_exporter/otlp_receiver
further_reading:
- link: "/opentelemetry/collector_exporter/"
tag: "Documentation"
diff --git a/content/en/opentelemetry/correlate/_index.md b/content/en/opentelemetry/correlate/_index.md
new file mode 100644
index 0000000000000..55b94feb129b4
--- /dev/null
+++ b/content/en/opentelemetry/correlate/_index.md
@@ -0,0 +1,22 @@
+---
+title: Correlate Data
+aliases:
+ - /opentelemetry/otel_logs/
+further_reading:
+- link: "https://www.datadoghq.com/blog/opentelemetry-instrumentation/"
+ tag: "Blog"
+ text: "Datadog's partnership with OpenTelemetry"
+---
+
+## Overview
+
+Link your telemetry data for full-stack observability:
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="/opentelemetry/correlate/logs_and_traces/" >}}Connect Logs and Traces{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/correlate/rum_and_traces/" >}}Connect RUM and Traces{{< /nextlink >}}
+{{< /whatsnext >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/correlate/logs_and_traces.md b/content/en/opentelemetry/correlate/logs_and_traces.md
new file mode 100644
index 0000000000000..9849a147e4e7a
--- /dev/null
+++ b/content/en/opentelemetry/correlate/logs_and_traces.md
@@ -0,0 +1,18 @@
+---
+title: Correlate OpenTelemetry Traces and Logs
+further_reading:
+- link: "/opentelemetry/otel_tracing/"
+ tag: "Documentation"
+ text: "Send OpenTelemetry Traces to Datadog"
+- link: "https://opentelemetry.io/docs/collector/"
+ tag: "External Site"
+ text: "Collector documentation"
+- link: "https://www.datadoghq.com/blog/opentelemetry-instrumentation/"
+ tag: "Blog"
+ text: "Datadog's partnership with OpenTelemetry"
+- link: '/logs/guide/ease-troubleshooting-with-cross-product-correlation/'
+ tag: 'Guide'
+ text: 'Ease troubleshooting with cross-product correlation.'
+---
+
+{{< include-markdown "/tracing/other_telemetry/connect_logs_and_traces/opentelemetry" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/interoperability/connect_rum_and_traces.md b/content/en/opentelemetry/correlate/rum_and_traces.md
similarity index 61%
rename from content/en/opentelemetry/interoperability/connect_rum_and_traces.md
rename to content/en/opentelemetry/correlate/rum_and_traces.md
index 02bb9ac9960c1..6bb17e1a2da84 100644
--- a/content/en/opentelemetry/interoperability/connect_rum_and_traces.md
+++ b/content/en/opentelemetry/correlate/rum_and_traces.md
@@ -1,5 +1,7 @@
---
-title: Connect RUM and Traces
+title: Correlate RUM and Traces
+aliases:
+ - /opentelemetry/interoperability/connect_rum_and_traces
description: Learn how to integrate Real User Monitoring with APM.
---
diff --git a/content/en/opentelemetry/guide/_index.md b/content/en/opentelemetry/guide/_index.md
index 3935e7a1275c4..c56201f4d4154 100644
--- a/content/en/opentelemetry/guide/_index.md
+++ b/content/en/opentelemetry/guide/_index.md
@@ -1,21 +1,22 @@
---
-title: OpenTelemetry Guides and Resources
+title: Guides
private: true
---
## Guides
{{< whatsnext desc=" " >}}
-{{< nextlink href="/opentelemetry/guide/otlp_histogram_heatmaps/" >}}Visualizing OTLP Histograms as heatmaps{{< /nextlink >}}
+{{< nextlink href="getting_started/opentelemetry/" >}}Getting Started with OpenTelemetry at Datadog{{< /nextlink >}}
{{< nextlink href="/opentelemetry/guide/otlp_delta_temporality/" >}}Producing Delta Temporality Metrics{{< /nextlink >}}
{{< nextlink href="/opentelemetry/guide/otel_demo_to_datadog/" >}}Sending Data from OpenTelemetry Demo to Datadog{{< /nextlink >}}
+{{< nextlink href="/opentelemetry/guide/otlp_histogram_heatmaps/" >}}Visualize Histograms as Heatmaps{{< /nextlink >}}
{{< /whatsnext >}}
## Migration guides
{{< whatsnext desc=" " >}}
-{{< nextlink href="/opentelemetry/guide/migration/" >}}Migrate to OpenTelemetry Collector version 0.95.0+{{< /nextlink >}}
-{{< nextlink href="/opentelemetry/guide/migrate_operation_names/" >}}Migrate to New Operation Name Mappings{{< /nextlink >}}
+{{< nextlink href="/opentelemetry/guide/migrate/collector_0_95_0" >}}Migrate to OpenTelemetry Collector Version 0.95.0+{{< /nextlink >}}
+{{< nextlink href="/opentelemetry/guide/migrate/migrate_operation_names" >}}Migrate to New Operation Name Mappings{{< /nextlink >}}
{{< /whatsnext >}}
## Read more on the blog
@@ -29,18 +30,4 @@ private: true
{{< nextlink href="https://www.datadoghq.com/blog/aws-opentelemetry-lambda-layer-datadog/" >}}Learn more about AWS's managed Lambda Layer for OpenTelemetry{{< /nextlink >}}
{{< nextlink href="https://www.datadoghq.com/blog/correlate-traces-datadog-rum-otel/" >}}Correlate Datadog RUM events with traces from OpenTelemetry-instrumented applications{{< /nextlink >}}
{{< nextlink href="https://www.datadoghq.com/blog/opentelemetry-runtime-metrics-datadog/" >}}Monitor runtime metrics from OTel-instrumented apps with Datadog APM{{< /nextlink >}}
-{{< /whatsnext >}}
-
-## OpenTelemetry Registry
-
-{{< whatsnext desc=" " >}}
-{{< nextlink href="https://opentelemetry.io/ecosystem/registry/?s=datadog" >}}Search for instrumentation libraries, collector components, utilities, and other OpenTelmetry projects{{< /nextlink >}}
-{{< /whatsnext >}}
-
-## OpenTelemetry documentation
-
-{{< whatsnext desc=" " >}}
-{{< nextlink href="https://opentelemetry.io/docs/" >}}OpenTelemetry Documentation{{< /nextlink >}}
-{{< nextlink href="https://opentelemetry.io/docs/concepts/" >}}OpenTelemetry Concepts{{< /nextlink >}}
-{{< nextlink href="https://opentelemetry.io/docs/collector/" >}}OpenTelemetry Collector{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /whatsnext >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/guide/migrate/_index.md b/content/en/opentelemetry/guide/migrate/_index.md
new file mode 100644
index 0000000000000..a33bd6d8a2bed
--- /dev/null
+++ b/content/en/opentelemetry/guide/migrate/_index.md
@@ -0,0 +1,8 @@
+---
+title: OpenTelemetry Migration Guides
+---
+
+{{< whatsnext desc=" " >}}
+{{< nextlink href="/opentelemetry/guide/migrate/collector_0_95_0" >}}Migrate to OpenTelemetry Collector version 0.95.0+{{< /nextlink >}}
+{{< nextlink href="/opentelemetry/guide/migrate/migrate_operation_names" >}}Migrate to New Operation Name Mappings{{< /nextlink >}}
+{{< /whatsnext >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/guide/migration.md b/content/en/opentelemetry/guide/migrate/collector_0_95_0.md
similarity index 99%
rename from content/en/opentelemetry/guide/migration.md
rename to content/en/opentelemetry/guide/migrate/collector_0_95_0.md
index 652364e415443..bc11aa8f1bb3a 100644
--- a/content/en/opentelemetry/guide/migration.md
+++ b/content/en/opentelemetry/guide/migrate/collector_0_95_0.md
@@ -2,6 +2,7 @@
title: Migrate to OpenTelemetry Collector version 0.95.0+
aliases:
- /opentelemetry/guide/switch_from_processor_to_connector
+- /opentelemetry/guide/migration/
---
[OTel Collector Contrib version 0.95.0][1] disables Trace Metrics computation in the Datadog Exporter by default.
diff --git a/content/en/opentelemetry/guide/migrate_operation_names.md b/content/en/opentelemetry/guide/migrate/migrate_operation_names.md
similarity index 100%
rename from content/en/opentelemetry/guide/migrate_operation_names.md
rename to content/en/opentelemetry/guide/migrate/migrate_operation_names.md
diff --git a/content/en/opentelemetry/guide/otlp_histogram_heatmaps.md b/content/en/opentelemetry/guide/otlp_histogram_heatmaps.md
index f6bd678d70d19..761c804a47218 100644
--- a/content/en/opentelemetry/guide/otlp_histogram_heatmaps.md
+++ b/content/en/opentelemetry/guide/otlp_histogram_heatmaps.md
@@ -1,5 +1,5 @@
---
-title: Visualizing OTLP Histograms as heatmaps
+title: Visualize OTLP Histograms as Heatmaps
further_reading:
- link: "/metrics/open_telemetry/otlp_metric_types"
tag: "Documentation"
diff --git a/content/en/opentelemetry/ingestion_sampling_with_opentelemetry.md b/content/en/opentelemetry/ingestion_sampling.md
similarity index 100%
rename from content/en/opentelemetry/ingestion_sampling_with_opentelemetry.md
rename to content/en/opentelemetry/ingestion_sampling.md
diff --git a/content/en/opentelemetry/instrument/_index.md b/content/en/opentelemetry/instrument/_index.md
new file mode 100644
index 0000000000000..1d3c054734634
--- /dev/null
+++ b/content/en/opentelemetry/instrument/_index.md
@@ -0,0 +1,49 @@
+---
+title: Instrument Your Applications
+aliases:
+ - /opentelemetry/guide/otel_api_tracing_interoperability
+further_reading:
+ - link: 'https://opentelemetry.io/docs/concepts/instrumentation/'
+ text: 'OpenTelemetry Instrumentation'
+ tag: 'External Site'
+---
+
+## Overview
+
+Datadog supports several approaches for instrumenting your applications with OpenTelemetry. Choose the method that best fits your needs:
+
+### OpenTelemetry SDK
+
+{{% opentelemetry/otel-sdks %}}
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="https://opentelemetry.io/docs/languages/" >}}Use OpenTelemetry SDKs{{< /nextlink >}}
+{{< /whatsnext >}}
+
+### OpenTelemetry API and Datadog SDK
+
+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, metrics, and logs from your applications and infrastructure.
+
+Use the OpenTelemetry Tracing APIs with Datadog's SDK to maintain vendor-neutral instrumentation while accessing Datadog's full feature set.
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="/opentelemetry/instrument/api_support" >}}Use the Datadog SDK with OpenTelemetry API{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/config/environment_variable_support/" >}}Configure the Datadog SDK with OpenTelemetry SDK environment variables{{< /nextlink >}}
+{{< /whatsnext >}}
+
+### OpenTelemetry instrumentation libraries
+
+Extend your observability with OpenTelemetry [instrumentation libraries][2] alongside Datadog's SDK.
+
+Datadog supports OpenTelemetry-compatible instrumentation libraries which provide observability for frameworks and technologies not covered by Datadog's native SDKs. This allows you to instrument additional frameworks and libraries while still sending data to Datadog's backend.
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="/opentelemetry/instrument/instrumentation_libraries/" >}}Use OpenTelemetry Instrumentation Libraries with the Datadog SDK{{< /nextlink >}}
+{{< /whatsnext >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: /opentelemetry/setup/collector_exporter/
+[2]: https://opentelemetry.io/docs/specs/otel/overview/#instrumentation-libraries
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/_index.md b/content/en/opentelemetry/instrument/api_support/_index.md
new file mode 100644
index 0000000000000..d29280e2e9bc7
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/_index.md
@@ -0,0 +1,56 @@
+---
+title: OpenTelemetry API Support
+aliases:
+ - /opentelemetry/interoperability/api_support
+ - /opentelemetry/interoperability/otel_api_tracing_interoperability/
+further_reading:
+ - link: 'tracing/guide/instrument_custom_method'
+ text: 'Instrument a custom method to get deep visibility into your business logic'
+ tag: 'Documentation'
+ - link: 'tracing/connect_logs_and_traces'
+ text: 'Connect your Logs and Traces together'
+ tag: 'Documentation'
+ - link: 'tracing/visualization/'
+ text: 'Explore your services, resources, and traces'
+ tag: 'Documentation'
+ - link: 'https://www.datadoghq.com/blog/opentelemetry-instrumentation/'
+ text: 'Learn More about Datadog and the OpenTelemetry initiative'
+ tag: 'Blog'
+algolia:
+ tags: ['otel custom instrumentation']
+---
+
+Datadog tracing libraries provide an implementation of the [OpenTelemetry API][1] for instrumenting your code. This means you can maintain vendor-neutral instrumentation of your services, while still taking advantage of Datadog's native implementation, features, and products.
+
+{{< img src="/opentelemetry/setup/otel-api-dd-sdk.png" alt="Diagram: OpenTelemetry API with DD tracing libraries sends data through OTLP protocol to the Datadog Agent, which forwards to Datadog's platform." style="width:100%;" >}}
+
+**Note:** You can also send your OpenTelemetry API instrumented traces to Datadog using the [OTel Collector][7].
+
+By [instrumenting your code with OpenTelemetry APIs][2], your code:
+
+- Remains free of vendor-specific API calls.
+- Does not depend on Datadog tracing libraries at compile time (only runtime).
+
+Replace the OpenTelemetry SDK with the Datadog tracing library in the instrumented application, and the traces produced by your running code can be processed, analyzed, and monitored alongside Datadog traces and in Datadog proprietary products such as [Continuous Profiler][3], [Data Streams Monitoring][4], [Application Security Management][5], and [Live Processes][6].
+
+To learn more, follow the link for your language:
+
+{{< partial name="apm/otel-instrumentation.html" >}}
+
+
+
+To see which Datadog features are supported with this setup, see the
feature compatibility table under
OTel API with Datadog SDK and Agent.
+
+
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: https://opentelemetry.io/docs/specs/otel/trace/api/
+[2]: /tracing/trace_collection/otel_instrumentation/
+[3]: /profiler/
+[4]: /data_streams/
+[5]: /security/application_security/
+[6]: /infrastructure/process
+[7]: /opentelemetry/setup/collector_exporter/
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/dotnet.md b/content/en/opentelemetry/instrument/api_support/dotnet.md
new file mode 100644
index 0000000000000..a695a61c3ca0b
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/dotnet.md
@@ -0,0 +1,5 @@
+---
+title: .NET Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/dotnet/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/go.md b/content/en/opentelemetry/instrument/api_support/go.md
new file mode 100644
index 0000000000000..3c73292302256
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/go.md
@@ -0,0 +1,5 @@
+---
+title: Go Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/go/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/java.md b/content/en/opentelemetry/instrument/api_support/java.md
new file mode 100644
index 0000000000000..c9a96bf879296
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/java.md
@@ -0,0 +1,5 @@
+---
+title: Java Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/java/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/nodejs.md b/content/en/opentelemetry/instrument/api_support/nodejs.md
new file mode 100644
index 0000000000000..94e71ed6e70bb
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/nodejs.md
@@ -0,0 +1,5 @@
+---
+title: Node.js Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/nodejs/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/php.md b/content/en/opentelemetry/instrument/api_support/php.md
new file mode 100644
index 0000000000000..f1439780cc9e2
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/php.md
@@ -0,0 +1,5 @@
+---
+title: PHP Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/php/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/python.md b/content/en/opentelemetry/instrument/api_support/python.md
new file mode 100644
index 0000000000000..c43ba4ee6b19d
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/python.md
@@ -0,0 +1,5 @@
+---
+title: Python Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/python/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/instrument/api_support/ruby.md b/content/en/opentelemetry/instrument/api_support/ruby.md
new file mode 100644
index 0000000000000..65d7c18584ef8
--- /dev/null
+++ b/content/en/opentelemetry/instrument/api_support/ruby.md
@@ -0,0 +1,5 @@
+---
+title: Ruby Custom Instrumentation using the OpenTelemetry API
+---
+
+{{< include-markdown "/tracing/trace_collection/custom_instrumentation/ruby/otel/" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/interoperability/instrumentation_libraries.md b/content/en/opentelemetry/instrument/instrumentation_libraries.md
similarity index 99%
rename from content/en/opentelemetry/interoperability/instrumentation_libraries.md
rename to content/en/opentelemetry/instrument/instrumentation_libraries.md
index d210eebe67ea5..d67cd3f033c85 100644
--- a/content/en/opentelemetry/interoperability/instrumentation_libraries.md
+++ b/content/en/opentelemetry/instrument/instrumentation_libraries.md
@@ -1,5 +1,7 @@
---
title: Using OpenTelemetry Instrumentation Libraries with Datadog SDKs
+aliases:
+ - /opentelemetry/interoperability/instrumentation_libraries
further_reading:
- link: 'tracing/guide/instrument_custom_method'
text: 'Instrument a custom method to get deep visibility into your business logic'
diff --git a/content/en/opentelemetry/instrument/otel_sdks.md b/content/en/opentelemetry/instrument/otel_sdks.md
new file mode 100644
index 0000000000000..dad766da6cd34
--- /dev/null
+++ b/content/en/opentelemetry/instrument/otel_sdks.md
@@ -0,0 +1,17 @@
+---
+title: OpenTelemetry SDKs
+further_reading:
+- link: "/opentelemetry/setup/"
+ tag: "Documentation"
+ text: "Send Data to Datadog"
+---
+
+{{% opentelemetry/otel-sdks %}}
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="https://opentelemetry.io/docs/languages/" tag="External Site" >}}Use OpenTelemetry SDKs{{< /nextlink >}}
+{{< /whatsnext >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/interoperability/_index.md b/content/en/opentelemetry/interoperability/_index.md
deleted file mode 100644
index a8191f1d6b107..0000000000000
--- a/content/en/opentelemetry/interoperability/_index.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: Interoperability with Datadog and OpenTelemetry
-further_reading:
- - link: '/opentelemetry/schema_semantics/'
- tag: 'Documentation'
- text: 'Schema and Semantics'
----
-
-## Overview
-
-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, metrics, and logs from your applications and infrastructure.
-
-## Key areas
-
-{{< whatsnext desc=" " >}}
- {{< nextlink href="/opentelemetry/interoperability/otlp_ingest_in_the_agent/" >}}OTLP Ingestion by the Datadog Agent
- {{< /nextlink >}}
- {{< nextlink href="/opentelemetry/interoperability/api_support" >}}OpenTelemetry API Support{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/interoperability/instrumentation_libraries/" >}}OpenTelemetry Instrumentation Libraries{{< /nextlink >}}
- {{< nextlink href="/real_user_monitoring/platform/connect_rum_and_traces/" >}}Correlate RUM and Traces{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/interoperability/environment_variable_support" >}}Configure Datadog SDKs Using OTel Environment Variables {{< /nextlink >}}
- {{< nextlink href="/opentelemetry/interoperability/environment_variable_support" >}}Configure Datadog SDKs Using OTEL Environment Variables {{< /nextlink >}}
-{{< /whatsnext >}}
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
diff --git a/content/en/opentelemetry/interoperability/api_support.md b/content/en/opentelemetry/interoperability/api_support.md
deleted file mode 100644
index e82fc7755153d..0000000000000
--- a/content/en/opentelemetry/interoperability/api_support.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: OpenTelemetry API Support
-further_reading:
- - link: 'tracing/guide/instrument_custom_method'
- text: 'Instrument a custom method to get deep visibility into your business logic'
- - link: 'tracing/connect_logs_and_traces'
- text: 'Connect your Logs and Traces together'
- - link: 'tracing/visualization/'
- text: 'Explore your services, resources, and traces'
- - link: 'https://www.datadoghq.com/blog/opentelemetry-instrumentation/'
- text: 'Learn More about Datadog and the OpenTelemetry initiative'
-algolia:
- tags: ['otel custom instrumentation']
----
-
-Datadog tracing libraries provide an implementation of the OpenTelemetry API for instrumenting your code. This means you can maintain vendor-neutral instrumentation of all your services, while still taking advantage of Datadog's native implementation, features, and products. You can configure it to generate Datadog-style spans and traces to be processed by the Datadog tracing library for your language, and send those to Datadog.
-
-To learn more, follow the link for your language:
-
-{{< partial name="apm/otel-instrumentation.html" >}}
-
-
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/interoperability/otel_api_tracing_interoperability.md b/content/en/opentelemetry/interoperability/otel_api_tracing_interoperability.md
deleted file mode 100644
index b9df1356048bf..0000000000000
--- a/content/en/opentelemetry/interoperability/otel_api_tracing_interoperability.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: Interoperability of OpenTelemetry API and Datadog instrumented traces
-aliases:
- - /opentelemetry/guide/otel_api_tracing_interoperability/
-further_reading:
-- link: "/tracing/trace_collection/otel_instrumentation/"
- tag: "Documentation"
- text: "Custom Instrumentation with OpenTelemetry API"
-- link: "/tracing/trace_collection/trace_context_propagation/"
- tag: "Documentation"
- text: "Trace Context Propagation in Datadog"
-
----
-
-## Custom instrumentation with the OpenTelemetry API
-
-Datadog tracing libraries provide an implementation of the [OpenTelemetry API][1] for instrumenting your code. This means you can maintain vendor-neutral instrumentation of all your services, while still taking advantage of Datadog's native implementation, features, and products.
-
-By [instrumenting your code with OpenTelemetry API][2]:
-
-- Your code remains free of vendor-specific API calls.
-- Your code does not depend on Datadog tracing libraries at compile time (only runtime).
-- Your code does not use the deprecated OpenTracing API.
-
-Replace the OpenTelemetry SDK with the Datadog tracing library in the instrumented application, and the traces produced by your running code can be processed, analyzed, and monitored alongside Datadog traces and in Datadog proprietary products such as [Continuous Profiler][3], [Data Streams Monitoring][4], [Application Security Management][5], and [Live Processes][6].
-
-## W3C trace context propagation
-
-To facilitate seamless handling of OpenTelemetry trace data within Datadog, and correlating it with trace data generated by Datadog instrumentation, the most recent versions of Datadog tracing libraries support both [Datadog (`datadog`) and W3C (`tracecontext`) propagation styles][8] by default. [Update your runtime tracing library dependencies][7] to the latest version.
-
-This context propagation style allows Datadog tracers to operate in the same application environment with OpenTelemetry SDKs and other W3C compliant tracers.
-
-
-## 128-bit trace IDs
-
-W3C traces implicitly contain 128-bit trace IDs, rather than the 64-bit trace IDs that Datadog traces have historically used. The latest Datadog tracing libraries default configuration uses the setting `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=True` so that they also produce trace data with 128-bit trace IDs.
-
-Following the [W3C Trace Context recommendations][9], Datadog 128-bit trace IDs have randomness in the lower-order 64 bits. This restriction provides backward compatibility for systems that intermix libraries that generate 64-bit trace IDs with newer ones that support 128-bit IDs. In such systems, spans with the full 128-bit trace ID and spans with the truncated lower-order 64-bit trace ID can arrive at the backend and be treated as matching and part of the same trace.
-
-{{< img src="opentelemetry/guide/otel_api_tracing_interop/128-62-bit-trace-ids.png" alt="128-bit Trace IDs can be passed with trace context to code whose tracing library generates 64-bit trace IDs, and Datadog successfully correlate them in the backend." style="width:100%;" >}}
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
-
-
-[1]: https://opentelemetry.io/docs/specs/otel/trace/api/
-[2]: /tracing/trace_collection/otel_instrumentation/
-[3]: /profiler/
-[4]: /data_streams/
-[5]: /security/application_security/
-[6]: /infrastructure/process
-[7]: /tracing/trace_collection/dd_libraries/
-[8]: /tracing/trace_collection/trace_context_propagation/
-[9]: https://www.w3.org/TR/trace-context/#handling-trace-id-for-compliant-platforms-with-shorter-internal-identifiers
diff --git a/content/en/opentelemetry/mapping/_index.md b/content/en/opentelemetry/mapping/_index.md
new file mode 100644
index 0000000000000..69697a4ce6509
--- /dev/null
+++ b/content/en/opentelemetry/mapping/_index.md
@@ -0,0 +1,25 @@
+---
+title: Semantic Mapping
+aliases:
+ - /opentelemetry/schema_semantics/
+further_reading:
+- link: "/opentelemetry/correlate/"
+ tag: "Documentation"
+ text: "Explore Data in Datadog"
+---
+
+OpenTelemetry uses semantic conventions to standardize names for different types of telemetry data, ensuring consistency across systems.
+
+The following documentation describes how OpenTelemetry and Datadog conventions map to one another.
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="/opentelemetry/mapping/semantic_mapping/" >}}Resource Attribute Mapping{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/mapping/metrics_mapping/" >}}Metrics Mapping{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/mapping/host_metadata/" >}}Infrastructure Host Mapping{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/mapping/hostname/" >}}Hostname Mapping{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/mapping/service_entry_spans/" >}}Service-entry Spans Mapping{{< /nextlink >}}
+{{< /whatsnext >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
diff --git a/content/en/opentelemetry/schema_semantics/host_metadata.md b/content/en/opentelemetry/mapping/host_metadata.md
similarity index 97%
rename from content/en/opentelemetry/schema_semantics/host_metadata.md
rename to content/en/opentelemetry/mapping/host_metadata.md
index bf1fd5857f8bf..c0f4ce19e7f55 100644
--- a/content/en/opentelemetry/schema_semantics/host_metadata.md
+++ b/content/en/opentelemetry/mapping/host_metadata.md
@@ -1,7 +1,8 @@
---
-title: Mapping OpenTelemetry Semantic Conventions to Infrastructure List Host Information
+title: Infrastructure List Host Information
aliases:
-- /opentelemetry/guide/host_metadata/
+ - /opentelemetry/guide/host_metadata/
+ - /opentelemetry/schema_semantics/host_metadata/
further_reading:
- link: "/opentelemetry/"
tag: "Documentation"
diff --git a/content/en/opentelemetry/schema_semantics/hostname.md b/content/en/opentelemetry/mapping/hostname.md
similarity index 97%
rename from content/en/opentelemetry/schema_semantics/hostname.md
rename to content/en/opentelemetry/mapping/hostname.md
index 6f9a7116ca32f..1116168bf40a2 100644
--- a/content/en/opentelemetry/schema_semantics/hostname.md
+++ b/content/en/opentelemetry/mapping/hostname.md
@@ -1,5 +1,7 @@
---
title: Mapping OpenTelemetry Semantic Conventions to Hostnames
+aliases:
+ - /opentelemetry/schema_semantics/hostname/
further_reading:
- link: "/opentelemetry/"
tag: "Documentation"
@@ -129,5 +131,5 @@ The following host names are deemed invalid and discarded:
[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/resourcedetectionprocessor#resource-detection-processor
[2]: /opentelemetry/interoperability/otlp_ingest_in_the_agent
-[3]: /opentelemetry/collector_exporter/otel_collector_datadog_exporter
-[4]: /opentelemetry/collector_exporter/hostname_tagging/?tab=host
+[3]: /opentelemetry/setup/collector_exporter/
+[4]: /opentelemetry/config/hostname_tagging/
diff --git a/content/en/opentelemetry/schema_semantics/metrics_mapping.md b/content/en/opentelemetry/mapping/metrics_mapping.md
similarity index 96%
rename from content/en/opentelemetry/schema_semantics/metrics_mapping.md
rename to content/en/opentelemetry/mapping/metrics_mapping.md
index 5fa22aa7f61b7..fc7324a1ba432 100644
--- a/content/en/opentelemetry/schema_semantics/metrics_mapping.md
+++ b/content/en/opentelemetry/mapping/metrics_mapping.md
@@ -1,7 +1,8 @@
---
title: OpenTelemetry Metrics Mapping
aliases:
-- /opentelemetry/guide/metrics_mapping/
+ - /opentelemetry/guide/metrics_mapping/
+ - /opentelemetry/schema_semantics/metrics_mapping/
further_reading:
- link: "/metrics/open_telemetry/otlp_metric_types"
tag: "Documentation"
diff --git a/content/en/opentelemetry/schema_semantics/semantic_mapping.md b/content/en/opentelemetry/mapping/semantic_mapping.md
similarity index 98%
rename from content/en/opentelemetry/schema_semantics/semantic_mapping.md
rename to content/en/opentelemetry/mapping/semantic_mapping.md
index 346b3b210c52c..e43aa5ef5c944 100644
--- a/content/en/opentelemetry/schema_semantics/semantic_mapping.md
+++ b/content/en/opentelemetry/mapping/semantic_mapping.md
@@ -1,7 +1,8 @@
---
title: OpenTelemetry Semantic Conventions and Datadog Conventions
aliases:
-- /opentelemetry/guide/semantic_mapping/
+ - /opentelemetry/guide/semantic_mapping/
+ - /opentelemetry/schema_semantics/semantic_mapping/
further_reading:
- link: "/opentelemetry/guide/metrics_mapping"
tag: "Documentation"
diff --git a/content/en/opentelemetry/schema_semantics/service_entry_spans.md b/content/en/opentelemetry/mapping/service_entry_spans.md
similarity index 97%
rename from content/en/opentelemetry/schema_semantics/service_entry_spans.md
rename to content/en/opentelemetry/mapping/service_entry_spans.md
index fd0d515de6356..64937032c45e3 100644
--- a/content/en/opentelemetry/schema_semantics/service_entry_spans.md
+++ b/content/en/opentelemetry/mapping/service_entry_spans.md
@@ -1,7 +1,8 @@
---
title: Mapping OpenTelemetry Semantic Conventions to Service-entry Spans
aliases:
-- /opentelemetry/guide/service_entry_spans_mapping/
+ - /opentelemetry/guide/service_entry_spans_mapping/
+ - /opentelemetry/schema_semantics/service_entry_spans/
further_reading:
- link: "/opentelemetry/integrations/trace_metrics"
tag: "Documentation"
diff --git a/content/en/opentelemetry/otel_logs.md b/content/en/opentelemetry/otel_logs.md
deleted file mode 100644
index 546ff795e90fc..0000000000000
--- a/content/en/opentelemetry/otel_logs.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Send Logs from OpenTelemetry to Datadog
-aliases:
-- /logs/log_collection/opentelemetry/
-further_reading:
-- link: "https://opentelemetry.io/docs/collector/"
- tag: "External Site"
- text: "Collector documentation"
-- link: "https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/"
- tag: "Blog"
- text: "Send metrics, traces, and logs from OpenTelemetry Collector to Datadog using Datadog Exporter"
-- link: "/tracing/other_telemetry/connect_logs_and_traces/opentelemetry/?tab=python"
- tag: "Documentation"
- text: "Connect OpenTelemetry Traces and Logs"
----
-
-
-
-## Overview
-
-[OpenTelemetry][1] is an open source observability framework that provides IT teams with standardized protocols and tools for collecting and routing telemetry data. Created as an incubator project by the [Cloud Native Computing Foundation][2] (CNCF), OpenTelemetry provides a consistent format for instrumenting, generating, gathering, and exporting application telemetry data—namely metrics, logs, and traces—to monitoring platforms for analysis and insight.
-
-The OpenTelemetry Collector is a vendor-agnostic agent process for collecting and exporting telemetry data emitted by many processes. Datadog has an [Exporter][3] available for the OpenTelemetry Collector which allows you to forward traces, metrics, and logs data from OpenTelemetry to Datadog.
-
-For collecting logs, Datadog recommends using the Collector's [filelog receiver][4]. The filelog receiver tails the log files that you specify. Then the Datadog Exporter (set up in the Collector) sends the log data to Datadog.
-
-{{< img src="logs/log_collection/otel_collector_logs.png" alt="A diagram showing the host, container, or application sending data the filelog receiver in the collector and the Datadog Exporter in the collector sending the data to the Datadog backend" style="width:100%;">}}
-
-## Setup
-
-If your applications and services are instrumented with [OpenTelemetry][4] libraries, send the logs data to the Datadog backend by using the OpenTelemetry Collector with the Datadog Exporter.
-
-[Send logs to the OpenTelemetry collector, and use the Datadog exporter to forward them to Datadog][5]
-
-Read [OpenTelemetry][6] for more information.
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
-
-[1]: https://opentelemetry.io/
-[2]: https://www.cncf.io/
-[3]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter
-[4]: https://opentelemetry.io/docs/reference/specification/logs/overview/#third-party-application-logs
-[5]: /opentelemetry/otel_collector_datadog_exporter/?tab=onahost#step-4---configure-the-logger-for-your-application
-[6]: /tracing/other_telemetry/connect_logs_and_traces/opentelemetry/?tab=python
diff --git a/content/en/opentelemetry/reference/_index.md b/content/en/opentelemetry/reference/_index.md
new file mode 100644
index 0000000000000..d74ef02caeb13
--- /dev/null
+++ b/content/en/opentelemetry/reference/_index.md
@@ -0,0 +1,20 @@
+---
+title: Reference
+disable_toc: false
+further_reading:
+- link: "/opentelemetry/guide"
+ tag: "Documentation"
+ text: "OpenTelemetry Guides"
+---
+
+Reference and conceptual documentation for OpenTelemetry and Datadog:
+
+{{< whatsnext desc=" " >}}
+ {{< nextlink href="/opentelemetry/reference/concepts" >}}Terms and concepts{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/reference/trace_context_propagation" >}}Trace context propagation{{< /nextlink >}}
+ {{< nextlink href="/opentelemetry/reference/otlp_metric_types" >}}OTLP metric types{{< /nextlink >}}
+{{< /whatsnext >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
\ No newline at end of file
diff --git a/content/en/opentelemetry/otel_terms.md b/content/en/opentelemetry/reference/concepts.md
similarity index 70%
rename from content/en/opentelemetry/otel_terms.md
rename to content/en/opentelemetry/reference/concepts.md
index b225253b57920..0aee8ab42bb9a 100644
--- a/content/en/opentelemetry/otel_terms.md
+++ b/content/en/opentelemetry/reference/concepts.md
@@ -1,5 +1,7 @@
---
title: OpenTelemetry Terms and Concepts
+aliases:
+ - /opentelemetry/otel_terms/
further_reading:
- link: 'https://opentelemetry.io/docs/concepts/'
tag: 'External Site'
@@ -14,14 +16,14 @@ further_reading:
This page describes essential terms and concepts for OpenTelemetry and Datadog. For additional definitions and descriptions, see the [OpenTelemetry Glossary][6].
-| Concept | Description |
-|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Telemetry | The collection of metrics, logs, and traces that provide observations about the behaviors and performance of applications and infrastructure. |
-| [OpenTelemetry Collector][1] | A vendor-agnostic implementation for collecting and exporting telemetry data emitted by many processes. It can be configured to receive, process, and export telemetry to one or multiple destinations including storage backends and analysis tools. |
-| [Datadog Exporter][2] | A component that lets you forward trace, metric, and logs data from OpenTelemetry SDKs to Datadog. |
+| Concept | Description |
+|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Telemetry | The collection of metrics, logs, traces, and profiles that provide observations about the behaviors and performance of applications and infrastructure. |
+| [OpenTelemetry Collector][1] | A vendor-agnostic implementation for collecting and exporting telemetry data emitted by many processes. It can be configured to receive, process, and export telemetry to one or multiple destinations including storage backends and analysis tools. |
+| [Datadog Exporter][2] | An OTel Collector component that lets you forward trace, metric, and logs data from OpenTelemetry SDKs to Datadog. |
| [OTLP Receiver][3] | A component within the OpenTelemetry Collector responsible for accepting telemetry data in the OpenTelemetry Protocol (OTLP) format. OTLP is the native protocol for OpenTelemetry, designed for transferring telemetry data between the SDKs and the Collector. |
-| [Context Propagation][4] | The mechanism used in distributed tracing to maintain trace context across different services. |
-| [Semantic Conventions][5] | OpenTelemetry makes use of a number of semantic conventions that specify names for different types of data. |
+| [Context Propagation][4] | The mechanism used in distributed tracing to maintain trace context across different services. |
+| [Semantic Conventions][5] | Standardized naming patterns and attribute definitions that establish consistent terminology for telemetry data across different systems and implementations. These conventions ensure that data collected from diverse sources can be uniformly processed and analyzed. |
## Further reading
@@ -30,6 +32,6 @@ This page describes essential terms and concepts for OpenTelemetry and Datadog.
[1]: /opentelemetry/collector_exporter/
[2]: /opentelemetry/collector_exporter/otel_collector_datadog_exporter/
[3]: /opentelemetry/collector_exporter/otlp_receiver/
-[4]: /opentelemetry/interoperability/
+[4]: /opentelemetry/reference/trace_context_propagation/
[5]: /opentelemetry/schema_semantics/semantic_mapping/
[6]: https://opentelemetry.io/docs/concepts/glossary/
\ No newline at end of file
diff --git a/content/en/opentelemetry/otel_metrics.md b/content/en/opentelemetry/reference/otel_metrics.md
similarity index 98%
rename from content/en/opentelemetry/otel_metrics.md
rename to content/en/opentelemetry/reference/otel_metrics.md
index a60ad1c7aa9dc..1a6bb1ddf1d9d 100644
--- a/content/en/opentelemetry/otel_metrics.md
+++ b/content/en/opentelemetry/reference/otel_metrics.md
@@ -1,5 +1,7 @@
---
title: Send Metrics from OpenTelemetry to Datadog
+aliases:
+ - /opentelemetry/otel_metrics
further_reading:
- link: '/opentelemetry/'
tag: 'Documentation'
diff --git a/content/en/opentelemetry/otlp_metric_types.md b/content/en/opentelemetry/reference/otlp_metric_types.md
similarity index 91%
rename from content/en/opentelemetry/otlp_metric_types.md
rename to content/en/opentelemetry/reference/otlp_metric_types.md
index 9512b1d520328..7846adcf43a49 100644
--- a/content/en/opentelemetry/otlp_metric_types.md
+++ b/content/en/opentelemetry/reference/otlp_metric_types.md
@@ -1,5 +1,7 @@
---
title: OTLP Metrics Types
+aliases:
+ - /opentelemetry/otlp_metric_types/
further_reading:
- link: 'metrics/distributions'
tag: 'Documentation'
diff --git a/content/en/opentelemetry/interoperability/trace_context_propagation.md b/content/en/opentelemetry/reference/trace_context_propagation.md
similarity index 90%
rename from content/en/opentelemetry/interoperability/trace_context_propagation.md
rename to content/en/opentelemetry/reference/trace_context_propagation.md
index ca135647ac8f3..c1173e5af5aae 100644
--- a/content/en/opentelemetry/interoperability/trace_context_propagation.md
+++ b/content/en/opentelemetry/reference/trace_context_propagation.md
@@ -1,8 +1,8 @@
---
title: Trace Context Propagation
-type: multi-code-lang
-description: 'Extract and inject Datadog, B3, and W3C Trace Context headers to propagate the context of a distributed trace.'
aliases:
+ - /opentelemetry/interoperability/trace_context_propagation/
+description: 'Extract and inject Datadog, B3, and W3C Trace Context headers to propagate the context of a distributed trace.'
further_reading:
- link: 'tracing/glossary/'
tag: 'Documentation'
@@ -15,4 +15,4 @@ further_reading:
text: 'Interoperability of OpenTelemetry API and Datadog instrumented traces'
---
-{{< include-markdown "tracing/trace_collection/trace_context_propagation/" >}}
\ No newline at end of file
+{{< include-markdown "tracing/trace_collection/trace_context_propagation/" >}}
diff --git a/content/en/opentelemetry/reference/trace_ids.md b/content/en/opentelemetry/reference/trace_ids.md
new file mode 100644
index 0000000000000..91d18ff9ae5ce
--- /dev/null
+++ b/content/en/opentelemetry/reference/trace_ids.md
@@ -0,0 +1,22 @@
+---
+title: Trace IDs
+disable_toc: false
+aliases:
+- /path-to-old-doc/
+further_reading:
+- link: "/opentelemetry/reference/trace_context_propagation"
+ tag: "Documentation"
+ text: "Trace Context Propagation"
+---
+
+W3C traces implicitly contain 128-bit trace IDs, rather than the 64-bit trace IDs that Datadog traces have historically used. The latest default configuration for Datadog tracing libraries uses the setting `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=True` so that Datadog also produces trace data with 128-bit trace IDs.
+
+Following the [W3C Trace Context recommendations][1], Datadog 128-bit trace IDs have randomness in the lower-order 64 bits. This restriction provides backward compatibility for systems that intermix libraries that generate 64-bit trace IDs with newer ones that support 128-bit IDs. In such systems, spans with the full 128-bit trace ID and spans with the truncated lower-order 64-bit trace ID can arrive at the backend and be treated as matching and part of the same trace.
+
+{{< img src="opentelemetry/guide/otel_api_tracing_interop/128-62-bit-trace-ids.png" alt="128-bit Trace IDs can be passed with trace context to code whose tracing library generates 64-bit trace IDs, and Datadog successfully correlate them in the backend." style="width:100%;" >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: https://www.w3.org/TR/trace-context/#handling-trace-id-for-compliant-platforms-with-shorter-internal-identifiers
\ No newline at end of file
diff --git a/content/en/opentelemetry/schema_semantics/_index.md b/content/en/opentelemetry/schema_semantics/_index.md
deleted file mode 100644
index cb3f3d91cf56e..0000000000000
--- a/content/en/opentelemetry/schema_semantics/_index.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: Schema and Semantics
-further_reading:
-- link: "/opentelemetry/interoperability/"
- tag: "Documentation"
- text: "Interoperability with Datadog"
----
-
-## Overview
-
-OpenTelemetry uses semantic conventions to specify names for different types of data. Semantic conventions define common names and values for telemetry data to promote consistency across systems.
-
-The following documentation describes how OpenTelemetry and Datadog conventions map to one another.
-
-## Schema and semantics
-
-{{< whatsnext desc=" " >}}
- {{< nextlink href="/opentelemetry/schema_semantics/semantic_mapping/" >}}Resource Attribute Mapping{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/schema_semantics/metrics_mapping/" >}}Metrics Mapping{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/schema_semantics/host_metadata/" >}}Infrastructure Host Mapping{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/schema_semantics/hostname/" >}}Hostname Mapping{{< /nextlink >}}
- {{< nextlink href="/opentelemetry/schema_semantics/service_entry_spans/" >}}Service-entry Spans Mapping{{< /nextlink >}}
-{{< /whatsnext >}}
-
-## Further reading
-
-{{< partial name="whats-next/whats-next.html" >}}
diff --git a/content/en/opentelemetry/setup/_index.md b/content/en/opentelemetry/setup/_index.md
new file mode 100644
index 0000000000000..ce1c737836b52
--- /dev/null
+++ b/content/en/opentelemetry/setup/_index.md
@@ -0,0 +1,27 @@
+---
+title: Send Data to Datadog
+aliases:
+further_reading:
+- link: "/opentelemetry/instrument/"
+ tag: "Documentation"
+ text: "Instrument Your Applications"
+---
+
+There are multiple ways to send OpenTelemetry data to Datadog. Choose the method that best fits your infrastructure and requirements:
+
+| Method | Best For | Key Benefits | Documentation |
+|---------------------------------|--------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
+| OTel Collector | New or existing OTel users wanting a vendor-neutral setup | - Complete vendor neutrality
- Send traces, metrics, and logs to Datadog without installing the Datadog Agent or tracing libraries
- Advanced processing capabilities (for example, [tail-based sampling][4])
| [Send data using the OTel Collector][2] |
+| Datadog Agent | Existing Datadog users or teams requiring Agent-based features | - Access to full Datadog Agent capabilities
- Enhanced monitoring capabilities including:
- Fleet Automation
- Live Container Monitoring
- Kubernetes Explorer
- Live Processes
- Cloud Network Monitoring
- Universal Service Monitoring
- {{< translate key="integration_count" >}}+ Datadog integrations
| [Send data using OTLP ingest in the Agent][1] |
+| Direct OTLP Ingest | Situations requiring direct connection without additional infrastructure | - Direct data transmission
- No additional components needed
| [Send data using the intake endpoint][3] |
+
+Still not sure which setup is right for you? See the
Feature Compatibility table to understand which Datadog features are supported.
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: /opentelemetry/setup/otlp_ingest_in_the_agent
+[2]: /opentelemetry/setup/collector_exporter/
+[3]: /opentelemetry/setup/intake_endpoint
+[4]: /opentelemetry/ingestion_sampling#tail-based-sampling
diff --git a/content/en/opentelemetry/collector_exporter/configuration.md b/content/en/opentelemetry/setup/collector_exporter/_index.md
similarity index 76%
rename from content/en/opentelemetry/collector_exporter/configuration.md
rename to content/en/opentelemetry/setup/collector_exporter/_index.md
index 3ffbb2a774256..cbe3ea69df6ed 100644
--- a/content/en/opentelemetry/collector_exporter/configuration.md
+++ b/content/en/opentelemetry/setup/collector_exporter/_index.md
@@ -1,30 +1,45 @@
---
-title: Configuration
+title: Set Up the OpenTelemetry Collector
+aliases:
+- /tracing/setup_overview/open_standards/otel_collector_datadog_exporter/
+- /tracing/trace_collection/open_standards/otel_collector_datadog_exporter/
+- /opentelemetry/otel_collector_datadog_exporter/
+- /opentelemetry/collector_exporter/
+- /opentelemetry/collector_exporter/otel_collector_datadog_exporter
+description: 'Send OpenTelemetry data to the OpenTelemetry Collector and Datadog Exporter'
further_reading:
-- link: "https://opentelemetry.io/docs/collector/management/"
+- link: "https://opentelemetry.io/docs/collector/"
tag: "External Site"
- text: "OpenTelemetry Collector Management"
-- link: "https://opentelemetry.io/docs/collector/configuration/"
- tag: "External Site"
- text: "OpenTelemetry Collector Configuration"
+ text: "Collector documentation"
+- link: "https://www.datadoghq.com/blog/ingest-opentelemetry-traces-metrics-with-datadog-exporter/"
+ tag: "Blog"
+ text: "Send metrics, traces, and logs from OpenTelemetry Collector to Datadog using Datadog Exporter"
---
-The OpenTelemetry Collector receives, processes, and exports telemetry data from your applications. To send this data to Datadog, you need to configure several components within the Collector:
+## Overview
+
+The OpenTelemetry Collector enables you to collect, process, and export telemetry data from your applications in a vendor-neutral way. When configured with the [Datadog Exporter][1] and [Datadog Connector][29], you can send your traces, logs, and metrics to Datadog without the Datadog Agent.
+
+- **Datadog Exporter**: Forwards trace, metric, and logs data from OpenTelemetry SDKs to Datadog (without the Datadog Agent)
+- **Datadog Connector**: Calculates Trace Metrics from collected span data
-- [Datadog Exporter][1]: Forwards trace, metric, and logs data from OpenTelemetry SDKs on to Datadog (without the Datadog Agent).
-- [Datadog Connector][29]: Calculates Trace Metrics from collected span data.
+{{< 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%;" >}}
-## Setting up the OpenTelemetry Collector
+
-To run the OpenTelemetry Collector with the Datadog Exporter and Datadog Connector:
+## Install and configure
-### Step 1 - Download the OpenTelemetry Collector
+### 1 - Download the OpenTelemetry Collector
Download the latest release of the OpenTelemetry Collector Contrib distribution, from [the project's repository][3].
-### Step 2 - Configure the Datadog Exporter and Connector
+### 2 - Configure the Datadog Exporter and Connector
-To use the Datadog Exporter, add it to your [OpenTelemetry Collector configuration][4]. Create a configuration file and name it `collector.yaml`. Use the example file which provides a basic configuration that is ready to use after you set your Datadog API key as the `DD_API_KEY` environment variable:
+To use the Datadog Exporter and Datadog Connector, configure them in your [OpenTelemetry Collector configuration][4]:
+
+1. Create a configuration file named `collector.yaml`.
+1. Use the following example file to get started.
+1. Set your Datadog API key as the `DD_API_KEY` environment variable.
{{% otel-endpoint-note %}}
@@ -103,18 +118,23 @@ service:
exporters: [datadog/exporter]
```
-The above configuration enables the receiving of OTLP data from OpenTelemetry instrumentation libraries over HTTP and gRPC, and sets up a [batch processor][5], which is mandatory for any non-development environment. Note that you may get `413 - Request Entity Too Large` errors if you batch too much telemetry data in the batch processor.
+This basic configuration enables the receiving of OTLP data over HTTP and gRPC, and sets up a [batch processor][5].
+
+For a complete list of configuration options for the Datadog Exporter, see the [fully documented example configuration file][8]. Additional options like `api::site` and `host_metadata` settings may be relevant depending on your deployment.
+
+#### Batch processor configuration
+
+The batch processor is required for non-development environments. The exact configuration depends on your specific workload and signal types.
+
+Configure the batch processor based on Datadog's intake limits:
-The exact configuration of the batch processor depends on your specific workload as well as the signal types. Datadog intake has different payload size limits for the 3 signal types:
- Trace intake: 3.2MB
- Log intake: [5MB uncompressed][6]
- Metrics V2 intake: [500KB or 5MB after decompression][7]
-#### Advanced configuration
-
-[This fully documented example configuration file][8] illustrates all possible configuration options for the Datadog Exporter. There may be other options relevant to your deployment, such as `api::site` or the ones on the `host_metadata` section.
+You may get `413 - Request Entity Too Large` errors if you batch too much telemetry data in the batch processor.
-### Step 3 - Configure your application
+### 3 - Configure your application
To get better metadata for traces and for smooth integration with Datadog:
@@ -122,7 +142,7 @@ To get better metadata for traces and for smooth integration with Datadog:
- **Apply [Unified Service Tagging][10]**: Make sure you've configured your application with the appropriate resource attributes for unified service tagging. This ties Datadog telemetry together with tags for service name, deployment environment, and service version. The application should set these tags using the OpenTelemetry semantic conventions: `service.name`, `deployment.environment`, and `service.version`.
-### Step 4 - Configure the logger for your application
+### 4 - Configure the logger for your application
{{< img src="logs/log_collection/otel_collector_logs.png" alt="A diagram showing the host, container, or application sending data to the filelog receiver in the collector and the Datadog Exporter in the collector sending the data to the Datadog backend" style="width:100%;">}}
@@ -256,8 +276,8 @@ You can find working examples of out-of-the-box configuration for Datadog Export
[3]: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/latest
[4]: https://opentelemetry.io/docs/collector/configuration/
[5]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/processor/batchprocessor/README.md
-[6]: https://docs.datadoghq.com/api/latest/logs/
-[7]: https://docs.datadoghq.com/api/latest/metrics/#submit-metrics
+[6]: /api/latest/logs/
+[7]: /api/latest/metrics/#submit-metrics
[8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yaml
[9]: https://pkg.go.dev/go.opentelemetry.io/otel/sdk/resource#WithContainer
[10]: /getting_started/tagging/unified_service_tagging/
@@ -269,9 +289,10 @@ You can find working examples of out-of-the-box configuration for Datadog Export
[16]: https://opentelemetry.io/docs/collector/deployment/#agent
[17]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/k8s-chart/daemonset.yaml
[25]: https://opentelemetry.io/docs/specs/semconv/resource/#service
-[26]: https://docs.datadoghq.com/logs/log_configuration/pipelines/?tab=service#service-attribute
-[27]: https://docs.datadoghq.com/logs/log_configuration/processors/?tab=ui#service-remapper
+[26]: /logs/log_configuration/pipelines/?tab=service#service-attribute
+[27]: /logs/log_configuration/processors/?tab=ui#service-remapper
[28]: /opentelemetry/schema_semantics/hostname/
[29]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/datadogconnector
[30]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/ootb-ec2.yaml
[31]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/
+[32]: /opentelemetry/compatibility/
\ No newline at end of file
diff --git a/content/en/opentelemetry/collector_exporter/deployment.md b/content/en/opentelemetry/setup/collector_exporter/deploy.md
similarity index 98%
rename from content/en/opentelemetry/collector_exporter/deployment.md
rename to content/en/opentelemetry/setup/collector_exporter/deploy.md
index ee61d1e7b512e..dbb65bb5dad6a 100644
--- a/content/en/opentelemetry/collector_exporter/deployment.md
+++ b/content/en/opentelemetry/setup/collector_exporter/deploy.md
@@ -1,7 +1,9 @@
---
-title: Deployment
+title: Deploy the OpenTelemetry Collector
+aliases:
+- /opentelemetry/collector_exporter/deployment
further_reading:
-- link: "/opentelemetry/collector_exporter/configuration/"
+- link: "/opentelemetry/setup/collector_exporter/"
tag: "Documentation"
text: "Configuring the OpenTelemetry Collector"
- link: "https://opentelemetry.io/docs/collector/deployment/"
@@ -11,10 +13,6 @@ further_reading:
This page guides you through various deployment options for the OpenTelemetry Collector with the Datadog Exporter, allowing you to send traces, metrics, and logs to Datadog.
-## Download the Collector
-
-To run the OpenTelemetry Collector along with the Datadog Exporter, download the latest release of the [OpenTelemetry Collector Contrib distribution][3].
-
## Deploy the Collector
The OpenTelemetry Collector can be deployed in various environments to suit different infrastructure needs. This section covers the following deployment options:
diff --git a/content/en/opentelemetry/setup/intake_endpoint/_index.md b/content/en/opentelemetry/setup/intake_endpoint/_index.md
new file mode 100644
index 0000000000000..7ae0a267180d2
--- /dev/null
+++ b/content/en/opentelemetry/setup/intake_endpoint/_index.md
@@ -0,0 +1,31 @@
+---
+title: Datadog OTLP Intake Endpoint
+further_reading:
+- link: "/opentelemetry/setup"
+ tag: "Documentation"
+ text: "Send Data to Datadog"
+---
+
+{{< callout header="false" btn_hidden="true">}}
+ The Datadog OTLP intake endpoint is in Preview.
+{{< /callout >}}
+
+## Overview
+
+Datadog's OpenTelemetry protocol (OTLP) intake API endpoint allows you to send observability data directly to Datadog. With this feature, you don't need to run the [Datadog Agent][1] or [OpenTelemetry Collector + Datadog Exporter][2].
+
+{{< img src="/opentelemetry/setup/direct-ingest.png" alt="Diagram: OpenTelemetry SDK sends data directly to Datadog through the intake endpoint." style="width:100%;" >}}
+
+You might prefer this option if you're looking for a straightforward setup and want to send traces directly to Datadog without using the Datadog Agent or OpenTelemetry Collector.
+
+- [OTLP logs intake endpoint][3]
+- [OTLP metrics intake endpoint][4]
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: /opentelemetry/otlp_ingest_in_the_agent/
+[2]: /opentelemetry/setup/collector_exporter/
+[3]: /opentelemetry/setup/intake_endpoint/otlp_logs
+[4]: /opentelemetry/setup/intake_endpoint/otlp_metrics
diff --git a/content/en/opentelemetry/otlp_logs.md b/content/en/opentelemetry/setup/intake_endpoint/otlp_logs.md
similarity index 99%
rename from content/en/opentelemetry/otlp_logs.md
rename to content/en/opentelemetry/setup/intake_endpoint/otlp_logs.md
index 177792e28bb84..a2ed4f0daded5 100644
--- a/content/en/opentelemetry/otlp_logs.md
+++ b/content/en/opentelemetry/setup/intake_endpoint/otlp_logs.md
@@ -1,5 +1,7 @@
---
title: Datadog OTLP Logs Intake Endpoint
+aliases:
+ - /opentelemetry/otlp_logs
further_reading:
- link: "https://opentelemetry.io/docs/concepts/sdk-configuration/general-sdk-configuration/"
tag: "External Site"
diff --git a/content/en/opentelemetry/otlp_metrics.md b/content/en/opentelemetry/setup/intake_endpoint/otlp_metrics.md
similarity index 99%
rename from content/en/opentelemetry/otlp_metrics.md
rename to content/en/opentelemetry/setup/intake_endpoint/otlp_metrics.md
index cb26e787a1e83..adc91a2b3126d 100644
--- a/content/en/opentelemetry/otlp_metrics.md
+++ b/content/en/opentelemetry/setup/intake_endpoint/otlp_metrics.md
@@ -1,6 +1,7 @@
---
title: Datadog OTLP Metrics Intake Endpoint
-private: true
+aliases:
+ - "/opentelemetry/otlp_metrics"
further_reading:
- link: "https://opentelemetry.io/docs/concepts/sdk-configuration/general-sdk-configuration/"
tag: "External Site"
diff --git a/content/en/opentelemetry/otlp_endpoint.md b/content/en/opentelemetry/setup/intake_endpoint/otlp_traces.md
similarity index 99%
rename from content/en/opentelemetry/otlp_endpoint.md
rename to content/en/opentelemetry/setup/intake_endpoint/otlp_traces.md
index 0ad641275ab25..4fdc83c7b10d2 100644
--- a/content/en/opentelemetry/otlp_endpoint.md
+++ b/content/en/opentelemetry/setup/intake_endpoint/otlp_traces.md
@@ -1,5 +1,7 @@
---
title: Datadog OTLP Traces Intake Endpoint
+aliases:
+ - /opentelemetry/otlp_endpoint
private: true
further_reading:
- link: "https://opentelemetry.io/docs/concepts/sdk-configuration/general-sdk-configuration/"
diff --git a/content/en/opentelemetry/interoperability/otlp_ingest_in_the_agent.md b/content/en/opentelemetry/setup/otlp_ingest_in_the_agent.md
similarity index 95%
rename from content/en/opentelemetry/interoperability/otlp_ingest_in_the_agent.md
rename to content/en/opentelemetry/setup/otlp_ingest_in_the_agent.md
index e4be7b12db1d5..c0fc0c916e7ab 100644
--- a/content/en/opentelemetry/interoperability/otlp_ingest_in_the_agent.md
+++ b/content/en/opentelemetry/setup/otlp_ingest_in_the_agent.md
@@ -4,6 +4,7 @@ aliases:
- /tracing/setup_overview/open_standards/otlp_ingest_in_the_agent/
- /tracing/trace_collection/open_standards/otlp_ingest_in_the_agent/
- /opentelemetry/otlp_ingest_in_the_agent/
+ - /opentelemetry/interoperability/otlp_ingest_in_the_agent/
description: 'Ingest OTLP trace data through the Datadog Agent'
further_reading:
- link: "https://www.datadoghq.com/about/latest-news/press-releases/datadog-announces-opentelemetry-protocol-support/"
@@ -22,12 +23,16 @@ OTLP Ingest in the Agent is a way to send telemetry data directly from applicati
OTLP Ingest in the Agent allows you to use observability features in the Datadog Agent. Data from applications instrumented with OpenTelemetry SDK cannot be used in some Datadog proprietary products, such as Application Security Management, Continuous Profiler, and Ingestion Rules. [OpenTelemetry Runtime Metrics are supported for some languages][10].
+{{< img src="/opentelemetry/setup/dd-agent-otlp-ingest.png" alt="Diagram: OpenTelemetry SDK sends data through OTLP protocol to a Collector with Datadog Exporter, which forwards to Datadog's platform." style="width:100%;" >}}
+
+
+
+## Initial setup
+
To get started, you first [instrument your application][3] with OpenTelemetry SDKs. Then, export the telemetry data in OTLP format to the Datadog Agent. Configuring this varies depending on the kind of infrastructure your service is deployed on, as described on the page below. Although the aim is to be compatible with the latest OTLP version, the OTLP Ingest in the Agent is not compatible with all OTLP versions. The versions of OTLP that are compatible with the Datadog Agent are those that are also supported by the OTLP receiver in the OpenTelemetry Collector. To verify the exact versions supported, check the `go.opentelemetry.io/collector` version in the Agent `go.mod` file.
Read the OpenTelemetry instrumentation documentation to understand how to point your instrumentation to the Agent. The `receiver` section described below follows the [OpenTelemetry Collector OTLP receiver configuration schema][5].
-{{< img src="metrics/otel/otlp_ingestion_update.png" alt="OTel SDKs/Libraries, Datadog Trace Library, Datadog Integrations -> Datadog Agent -> Datadog" style="width:100%;">}}
-
Note: The supported setup is an ingesting Agent deployed on every OpenTelemetry-data generating host. You cannot send OpenTelemetry telemetry from collectors or instrumented apps running one host to an Agent on a different host. But, provided the Agent is local to the collector or SDK instrumented app, you can set up multiple pipelines.
## Enabling OTLP Ingestion on the Datadog Agent
diff --git a/layouts/partials/apm/otel-instrumentation.html b/layouts/partials/apm/otel-instrumentation.html
index 35273d3a04abe..8cf88312afaa4 100644
--- a/layouts/partials/apm/otel-instrumentation.html
+++ b/layouts/partials/apm/otel-instrumentation.html
@@ -3,49 +3,49 @@
-
+
\ No newline at end of file
diff --git a/layouts/partials/nav/left-nav.html b/layouts/partials/nav/left-nav.html
index 55b784ac741ca..54638e2790fb6 100644
--- a/layouts/partials/nav/left-nav.html
+++ b/layouts/partials/nav/left-nav.html
@@ -69,7 +69,7 @@