Skip to content

Commit 33c3b78

Browse files
Add Datadog integration documentation
\# Main Changes * Sidebar Updates: Restructures and adds links to the new documentaion. * New Documentation: * Connecting to Datadog: Explains various connection methods (e.g., OpenTelemetry Collector, Datadog Agent). * Dashboard Template: Provides instructions for using preconfigured Datadog dashboards. * Router Instrumentation: Details settings for enhancing APM views, including error tracking and resource naming. * OpenTelemetry Collector Configuration: Comprehensive guide on setting up the collector. * Enhancements to Existing Documentation: * Added links to new documentation to drive home the organization. * Move some router instrumentation from the datadog-agent-traces page to the new router-instrumentation page. \# Noteworthy * I explicitly mentioned ddot and agentless as methods to connect to Datadog, despite the fact that our own documentation for these methods is not yet available. Agentless support is currently in the backlog, and ddot requires a combination of OTEL collector and agent configurations. In the interim, the combined documentation from Datadog and our own will be sufficient. Co-authored-by: Isaac M. Good <[email protected]>
1 parent b851880 commit 33c3b78

File tree

8 files changed

+777
-47
lines changed

8 files changed

+777
-47
lines changed

docs/source/_sidebar.yaml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,24 @@ items:
125125
children:
126126
- label: "Datadog"
127127
children:
128-
- label: "Metrics"
129-
href: "./observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-metrics"
130-
- label: "Traces"
131-
href: "./observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces"
128+
- label: "Overview"
129+
href: "./observability/router-telemetry-otel/apm-guides/datadog"
130+
- label: "Router Instrumentation"
131+
href: "./observability/router-telemetry-otel/apm-guides/datadog/router-instrumentation"
132+
- label: "Connecting to Datadog"
133+
children:
134+
- label: "Overview"
135+
href: "./observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog"
136+
- label: "OTel-Collector"
137+
href: "./observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/otel-collector"
138+
- label: "Datadog Agent"
139+
children:
140+
- label: "Metrics"
141+
href: "./observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-metrics"
142+
- label: "Traces"
143+
href: "./observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces"
144+
- label: "Dashboard Template"
145+
href: "./observability/router-telemetry-otel/apm-guides/datadog/observing-and-monitoring/dashboard-template"
132146
- label: "New Relic"
133147
children:
134148
- label: "Metrics"

docs/source/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-metrics.mdx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,23 @@ redirectFrom:
88
- /graphos/routing/observability/telemetry/metrics-exporters/datadog
99
---
1010

11+
This guide walks through configuring the Apollo Router to send metrics to Datadog via the Datadog Agent.
1112
This metrics exporter is a configuration of the [OTLP exporter](/router/configuration/telemetry/exporters/metrics/otlp) to use with [Datadog](https://www.datadoghq.com/).
1213

13-
For general tracing configuration, refer to [Router Metrics Configuration](/router/configuration/telemetry/exporters/metrics/overview).
14+
For general metrics configuration, refer to [Router Metrics Configuration](/router/configuration/telemetry/exporters/metrics/overview).
15+
For router instrumentation with Datadog-specific attributes, see the [Router Instrumentation guide](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/router-instrumentation).
16+
17+
## Connection methods
18+
19+
Datadog supports multiple methods for ingesting OpenTelemetry data:
20+
21+
- **[Datadog OpenTelemetry collector (DDOT)](https://docs.datadoghq.com/opentelemetry/setup/)** - Datadog's distribution of the OpenTelemetry Collector
22+
- **[OpenTelemetry collector](../otel-collector)** - Vendor-neutral telemetry pipeline with advanced processing ([guide available](../otel-collector))
23+
- **[Datadog agent](./datadog-agent-metrics)** - Direct connection with native Datadog features (this guide)
24+
- **[Agentless](https://docs.datadoghq.com/opentelemetry/setup/)** - Direct OTLP ingestion to Datadog
25+
26+
For a comprehensive overview of all OpenTelemetry setup options with Datadog, see [Datadog's OpenTelemetry setup documentation](https://docs.datadoghq.com/opentelemetry/setup/).
27+
1428

1529
## Configuration
1630

docs/source/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces.mdx

Lines changed: 9 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -11,55 +11,22 @@ redirectFrom:
1111
import BatchProcessorPreamble from '../../../../../../../../shared/batch-processor-preamble.mdx';
1212
import BatchProcessorRef from '../../../../../../../../shared/batch-processor-ref.mdx';
1313

14+
This guide walks through configuring the Apollo Router to send traces to Datadog via the Datadog Agent.
1415
This tracing exporter is a configuration of the [OTLP exporter](/graphos/routing/observability/telemetry/trace-exporters/otlp) to use with [Datadog](https://www.datadoghq.com/).
1516

1617
For general tracing configuration, refer to [Router Tracing Configuration](/router/configuration/telemetry/exporters/tracing/overview).
18+
For router instrumentation with Datadog-specific attributes, see the [Router Instrumentation guide](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/router-instrumentation).
1719

18-
## Attributes for Datadog APM UI
20+
## Connection methods
1921

20-
The router should set attributes that Datadog uses to organize its APM view and other UI:
22+
Datadog supports multiple methods for ingesting OpenTelemetry data:
23+
- **[Datadog OpenTelemetry collector (DDOT)](https://docs.datadoghq.com/opentelemetry/setup/)** - Datadog's distribution of the OpenTelemetry Collector
24+
- **[OpenTelemetry collector](../otel-collector)** - Vendor-neutral telemetry pipeline with advanced processing ([guide available](../otel-collector))
25+
- **[Datadog agent](./datadog-agent-traces)** - Direct connection with native Datadog features (this guide)
26+
- **[Agentless](https://docs.datadoghq.com/opentelemetry/setup/)** - Direct OTLP ingestion to Datadog
2127

22-
- `otel.name`: span name that's fixed for Datadog
23-
- `resource.name`: Datadog resource name that's displayed in traces
24-
- `operation.name`: Datadog operation name that populates a dropdown menu in the Datadog service page
28+
For a comprehensive overview of all OpenTelemetry setup options with Datadog, see [Datadog's OpenTelemetry setup documentation](https://docs.datadoghq.com/opentelemetry/setup/).
2529

26-
You should add these attributes to your `router.yaml` configuration file. The example below sets these attributes for the `router`, `supergraph`, and `subgraph` stages of the router's request lifecycle:
27-
28-
```yaml title="router.yaml"
29-
telemetry:
30-
instrumentation:
31-
spans:
32-
mode: spec_compliant
33-
router:
34-
attributes:
35-
otel.name: router
36-
operation.name: "router"
37-
resource.name:
38-
request_method: true
39-
40-
supergraph:
41-
attributes:
42-
otel.name: supergraph
43-
operation.name: "supergraph"
44-
resource.name:
45-
operation_name: string
46-
47-
subgraph:
48-
attributes:
49-
otel.name: subgraph
50-
operation.name: "subgraph"
51-
resource.name:
52-
subgraph_operation_name: string
53-
```
54-
55-
Consequently you can filter for these operations in Datadog APM:
56-
57-
<img
58-
className="screenshot"
59-
alt="Datadog APM showing operations set with example attributes set in router.yaml"
60-
src="../../../../../../../images/router/datadog-apm-ops-example.png"
61-
width="600"
62-
/>
6330

6431
## OTLP configuration
6532

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: Connecting to Datadog
3+
subtitle: Choose the right connection method for your infrastructure
4+
description: Overview of different methods to connect Apollo Router to Datadog for telemetry collection
5+
---
6+
7+
Connect your Apollo Router to Datadog using the method that best fits your infrastructure and requirements.
8+
9+
## Connection methods
10+
11+
This guide provides detailed configuration for the OpenTelemetry Collector and Datadog Agent methods.
12+
13+
Datadog supports multiple methods for ingesting OpenTelemetry data: the most relevant are covered in this guide for your convenience, but there are others available.
14+
15+
- **[Datadog OpenTelemetry collector (DDOT)](https://docs.datadoghq.com/opentelemetry/setup/)** - Datadog's distribution of the OpenTelemetry Collector
16+
- **[OpenTelemetry collector](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/otel-collector)** - Vendor-neutral telemetry pipeline with advanced processing (guide available)
17+
- **[Datadog agent](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces)** - Direct connection with native Datadog features (guide available)
18+
- **[Agentless](https://docs.datadoghq.com/opentelemetry/setup/)** - Direct OTLP ingestion to Datadog
19+
20+
For complete information on all connection methods including DDOT Collector and Agentless options, refer to [Datadog's OpenTelemetry setup documentation](https://docs.datadoghq.com/opentelemetry/setup/) and [compatibility guide](https://docs.datadoghq.com/opentelemetry/compatibility/).
21+
22+
## Quick start
23+
24+
For the fastest setup, choose one of the following methods based on your current Datadog setup:
25+
26+
1. If you already have Datadog Agent running, use the [Datadog Agent](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces).
27+
2. If you are starting fresh, use the [Datadog OpenTelemetry Collector (DDOT)](https://docs.datadoghq.com/opentelemetry/setup/) or the [OpenTelemetry Collector](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/otel-collector).
28+
3. For containerized deployments, consider the [Apollo Runtime container](https://github.com/apollographql/apollo-runtime) which includes pre-configured examples for the OpenTelemetry Collector.
29+
4. For a direct connection with no agent deployment required, use the [Agentless](https://docs.datadoghq.com/opentelemetry/setup/) method.
30+
31+
### Datadog OpenTelemetry collector (Recommended)
32+
33+
**[Datadog OpenTelemetry Collector](https://docs.datadoghq.com/opentelemetry/setup/)** is a Datadog-specific distribution of the OpenTelemetry collector that combines the OpenTelemetry Collector and the Datadog Agent. It is currently Datadog's recommended way to send OpenTelemetry to Datadog.
34+
This solution is tightly coupled to Datadog and is the most straightforward solution if you are committed to using Datadog.
35+
36+
### OpenTelemetry collector
37+
38+
**[OpenTelemetry collector](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/otel-collector)** provides a vendor-neutral telemetry pipeline with advanced processing capabilities including sampling, filtering, and multi-backend support.
39+
40+
### Datadog agent
41+
42+
The Datadog agent offers direct OTLP ingestion, integrating with Datadog's existing agent infrastructure for logs, infrastructure monitoring, and other telemetry collection.
43+
44+
- [Datadog agent traces configuration](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-traces)
45+
- [Datadog agent metrics configuration](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/connecting-to-datadog/datadog-agent/datadog-agent-metrics)
46+
47+
### Agentless
48+
49+
**[Agentless](https://docs.datadoghq.com/opentelemetry/setup/)** provides direct OTLP ingestion to Datadog without requiring additional infrastructure components.
50+
51+
## Next steps
52+
53+
After setting up your connection method:
54+
55+
1. [Configure router instrumentation](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/router-instrumentation) for Datadog-optimized telemetry
56+
2. [Import dashboard templates](/graphos/routing/observability/router-telemetry-otel/apm-guides/datadog/observing-and-monitoring/dashboard-template) for router monitoring

0 commit comments

Comments
 (0)