From 900cfbf62a0788453edbe9fdd8dcce35426f80fa Mon Sep 17 00:00:00 2001 From: Brett Blue Date: Fri, 24 Jan 2025 17:15:52 -0700 Subject: [PATCH 01/38] Create Send Data section. --- config/_default/menus/main.en.yaml | 21 +++++-- content/en/opentelemetry/_index.md | 4 ++ .../collector_exporter/_index.md | 58 ------------------- content/en/opentelemetry/guide/_index.md | 3 + content/en/opentelemetry/setup/_index.md | 12 ++++ .../setup/collector_exporter/_index.md | 35 +++++++++++ .../collector_batch_memory.md | 2 + .../collector_exporter/configure.md} | 49 ++++++++-------- .../collector_exporter/deploy.md} | 8 +-- .../collector_exporter/hostname_tagging.md | 2 + .../collector_exporter/log_collection.md | 1 + .../otel_collector_datadog_exporter.md | 1 + .../collector_exporter/otlp_receiver.md | 2 + .../setup/collector_exporter/test.md | 0 layouts/partials/nav/left-nav.html | 2 +- layouts/shortcodes/otel-endpoint-note.en.md | 2 +- 16 files changed, 108 insertions(+), 94 deletions(-) delete mode 100644 content/en/opentelemetry/collector_exporter/_index.md create mode 100644 content/en/opentelemetry/setup/_index.md create mode 100644 content/en/opentelemetry/setup/collector_exporter/_index.md rename content/en/opentelemetry/{ => setup}/collector_exporter/collector_batch_memory.md (96%) rename content/en/opentelemetry/{collector_exporter/configuration.md => setup/collector_exporter/configure.md} (83%) rename content/en/opentelemetry/{collector_exporter/deployment.md => setup/collector_exporter/deploy.md} (98%) rename content/en/opentelemetry/{ => setup}/collector_exporter/hostname_tagging.md (99%) rename content/en/opentelemetry/{ => setup}/collector_exporter/log_collection.md (99%) rename content/en/opentelemetry/{ => setup}/collector_exporter/otel_collector_datadog_exporter.md (99%) rename content/en/opentelemetry/{ => setup}/collector_exporter/otlp_receiver.md (99%) create mode 100644 content/en/opentelemetry/setup/collector_exporter/test.md diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index 918c8da1d1950..3e38b1f720e11 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -573,11 +573,24 @@ menu: pre: open-telemetry parent: essentials_heading weight: 60000 - - name: Getting Started - url: getting_started/opentelemetry/ - identifier: getting_started_otel_dd + - name: Send Data to Datadog + url: opentelemetry/setup + identifier: otel-setup parent: opentelemetry_top_level - weight: 1 + weight: 1 + - name: Using the OpenTelemetry Collector + url: /opentelemetry/setup/collector_exporter/ + identifier: otel-setup-collector-exporter + parent: otel-setup + weight: 101 + - name: Install and Configure + url: /opentelemetry/setup/collector_exporter/configure + parent: otel-setup-collector-exporter + weight: 1001 + - name: Deploy + url: /opentelemetry/setup/collector_exporter/deploy + parent: otel-setup-collector-exporter + weight: 1002 - name: Terms and Concepts url: opentelemetry/otel_terms/ identifier: otel_terms diff --git a/content/en/opentelemetry/_index.md b/content/en/opentelemetry/_index.md index f18bf9e83f1f6..080831d2d6381 100644 --- a/content/en/opentelemetry/_index.md +++ b/content/en/opentelemetry/_index.md @@ -27,6 +27,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: 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/guide/_index.md b/content/en/opentelemetry/guide/_index.md index 66cb511e0fb0a..dd78893cd4263 100644 --- a/content/en/opentelemetry/guide/_index.md +++ b/content/en/opentelemetry/guide/_index.md @@ -5,7 +5,10 @@ private: true ## Guides + + {{< whatsnext desc=" " >}} +{{< nextlink href="getting_started/opentelemetry/" >}}Getting Started with OpenTelemetry at Datadog{{< /nextlink >}} {{< nextlink href="/opentelemetry/guide/otlp_histogram_heatmaps/" >}}Visualizing OTLP Histograms as heatmaps{{< /nextlink >}} {{< nextlink href="/opentelemetry/guide/migration/" >}}Migrate to OpenTelemetry Collector version 0.95.0+{{< /nextlink >}} {{< nextlink href="/opentelemetry/guide/otlp_delta_temporality/" >}}Producing Delta Temporality Metrics{{< /nextlink >}} diff --git a/content/en/opentelemetry/setup/_index.md b/content/en/opentelemetry/setup/_index.md new file mode 100644 index 0000000000000..102cee503249b --- /dev/null +++ b/content/en/opentelemetry/setup/_index.md @@ -0,0 +1,12 @@ +--- +title: Send Data to Datadog +aliases: +further_reading: +- link: "https://www.datadoghq.com/blog/opentelemetry-instrumentation/" + tag: "Blog" + text: "Datadog's partnership with OpenTelemetry" +--- + +## Overview + + diff --git a/content/en/opentelemetry/setup/collector_exporter/_index.md b/content/en/opentelemetry/setup/collector_exporter/_index.md new file mode 100644 index 0000000000000..a7227a4c84a37 --- /dev/null +++ b/content/en/opentelemetry/setup/collector_exporter/_index.md @@ -0,0 +1,35 @@ +--- +title: Set Up the OTel 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/ +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" +--- + +## 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 + +{{< 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%;">}} + +**Note**: To see which Datadog features are supported with this setup, see the [feature compatibility table][32] under **Full OTel**. + +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter +[29]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/datadogconnector +[32]: /opentelemetry/compatibility/ \ No newline at end of file diff --git a/content/en/opentelemetry/collector_exporter/collector_batch_memory.md b/content/en/opentelemetry/setup/collector_exporter/collector_batch_memory.md similarity index 96% rename from content/en/opentelemetry/collector_exporter/collector_batch_memory.md rename to content/en/opentelemetry/setup/collector_exporter/collector_batch_memory.md index a9c40aa207aab..8b9b9a50ff67d 100644 --- a/content/en/opentelemetry/collector_exporter/collector_batch_memory.md +++ b/content/en/opentelemetry/setup/collector_exporter/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/collector_exporter/configuration.md b/content/en/opentelemetry/setup/collector_exporter/configure.md similarity index 83% rename from content/en/opentelemetry/collector_exporter/configuration.md rename to content/en/opentelemetry/setup/collector_exporter/configure.md index 3ffbb2a774256..26ae503e995d4 100644 --- a/content/en/opentelemetry/collector_exporter/configuration.md +++ b/content/en/opentelemetry/setup/collector_exporter/configure.md @@ -1,5 +1,5 @@ --- -title: Configuration +title: Install and Configure the OpenTelemetry Collector further_reading: - link: "https://opentelemetry.io/docs/collector/management/" tag: "External Site" @@ -9,22 +9,19 @@ further_reading: text: "OpenTelemetry Collector Configuration" --- -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: +## Install and configure the OpenTelemetry 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. - -## Setting up the OpenTelemetry Collector - -To run the OpenTelemetry Collector with the Datadog Exporter and Datadog Connector: - -### Step 1 - Download the OpenTelemetry Collector +### 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 +### 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: +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 basic example file to get started. +1. Set your Datadog API key as the `DD_API_KEY` environment variable. {{% otel-endpoint-note %}} @@ -103,16 +100,21 @@ 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 from OpenTelemetry instrumentation libraries 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 any 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 @@ -248,16 +250,12 @@ You can find working examples of out-of-the-box configuration for Datadog Export {{< nextlink href="/opentelemetry/collector_exporter/collector_batch_memory/" >}}Batch and Memory Settings{{< /nextlink >}} {{< /whatsnext >}} -## Further reading - -{{< partial name="whats-next/whats-next.html" >}} - [1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/datadogexporter [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 +267,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..d7948da217691 100644 --- a/content/en/opentelemetry/collector_exporter/deployment.md +++ b/content/en/opentelemetry/setup/collector_exporter/deploy.md @@ -1,5 +1,7 @@ --- -title: Deployment +title: Deploy the OpenTelemetry Collector +aliases: +- /opentelemetry/collector_exporter/deployment further_reading: - link: "/opentelemetry/collector_exporter/configuration/" tag: "Documentation" @@ -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/collector_exporter/hostname_tagging.md b/content/en/opentelemetry/setup/collector_exporter/hostname_tagging.md similarity index 99% rename from content/en/opentelemetry/collector_exporter/hostname_tagging.md rename to content/en/opentelemetry/setup/collector_exporter/hostname_tagging.md index 401d839c3f89a..8dc6e0436780e 100644 --- a/content/en/opentelemetry/collector_exporter/hostname_tagging.md +++ b/content/en/opentelemetry/setup/collector_exporter/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/setup/collector_exporter/log_collection.md similarity index 99% rename from content/en/opentelemetry/collector_exporter/log_collection.md rename to content/en/opentelemetry/setup/collector_exporter/log_collection.md index cb3e19ec18e98..d82375edcd3fd 100644 --- a/content/en/opentelemetry/collector_exporter/log_collection.md +++ b/content/en/opentelemetry/setup/collector_exporter/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/otel_collector_datadog_exporter.md b/content/en/opentelemetry/setup/collector_exporter/otel_collector_datadog_exporter.md similarity index 99% rename from content/en/opentelemetry/collector_exporter/otel_collector_datadog_exporter.md rename to content/en/opentelemetry/setup/collector_exporter/otel_collector_datadog_exporter.md index 3d4705bc0b77e..a7a9139984d8f 100644 --- a/content/en/opentelemetry/collector_exporter/otel_collector_datadog_exporter.md +++ b/content/en/opentelemetry/setup/collector_exporter/otel_collector_datadog_exporter.md @@ -3,6 +3,7 @@ title: OpenTelemetry Collector aliases: - /tracing/setup_overview/open_standards/otel_collector_datadog_exporter/ - /tracing/trace_collection/open_standards/otel_collector_datadog_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/" diff --git a/content/en/opentelemetry/collector_exporter/otlp_receiver.md b/content/en/opentelemetry/setup/collector_exporter/otlp_receiver.md similarity index 99% rename from content/en/opentelemetry/collector_exporter/otlp_receiver.md rename to content/en/opentelemetry/setup/collector_exporter/otlp_receiver.md index 8d3ca423b8834..5126a435eb600 100644 --- a/content/en/opentelemetry/collector_exporter/otlp_receiver.md +++ b/content/en/opentelemetry/setup/collector_exporter/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/setup/collector_exporter/test.md b/content/en/opentelemetry/setup/collector_exporter/test.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/layouts/partials/nav/left-nav.html b/layouts/partials/nav/left-nav.html index 55b784ac741ca..916e78c3af7c5 100644 --- a/layouts/partials/nav/left-nav.html +++ b/layouts/partials/nav/left-nav.html @@ -69,7 +69,7 @@