-
Notifications
You must be signed in to change notification settings - Fork 1.2k
DO NOT MERGE: "Docs for AI Agents" QA files for OpenTelemetry #31962
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
jhgilbert
wants to merge
2
commits into
master
Choose a base branch
from
jen.gilbert/otel-mdoc-review
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
--- | ||
title: Datadog and OpenTelemetry Compatibility | ||
description: Datadog, the leading service for cloud-scale monitoring. | ||
breadcrumbs: Docs > OpenTelemetry in Datadog > Datadog and OpenTelemetry Compatibility | ||
sourceUrl: https://docs.datadoghq.com/opentelemetry/compatibility/index.html | ||
--- | ||
|
||
# Datadog and OpenTelemetry Compatibility | ||
|
||
## Overview{% #overview %} | ||
|
||
Datadog offers multiple setup options to accommodate various use cases, from full OpenTelemetry (OTel) implementations to hybrid setups using both OpenTelemetry and Datadog components. This page covers the compatibility between different setups and supported Datadog products and features, helping you choose the best configuration for your needs. | ||
|
||
## Setups{% #setups %} | ||
|
||
Datadog supports several configurations for using OpenTelemetry. The primary difference between these setups is the choice of SDK (OpenTelemetry or Datadog) and the collector used to process and forward telemetry data. | ||
|
||
| Setup Type | API | SDK | Collector/Agent | | ||
| ----------------------------------------------------------------------------------------------------- | ----------------------- | ----------- | --------------------------------------------- | | ||
| [**Datadog SDK + DDOT (Recommended)**](https://docs.datadoghq.com/opentelemetry/setup/ddot_collector) | Datadog API or OTel API | Datadog SDK | Datadog Distribution of OTel Collector (DDOT) | | ||
| [**OTel SDK + DDOT**](https://docs.datadoghq.com/opentelemetry/setup/ddot_collector) | OTel API | OTel SDK | Datadog Distribution of OTel Collector (DDOT) | | ||
| [**OTel SDK + OSS Collector**](https://docs.datadoghq.com/opentelemetry/collector_exporter/) | OTel API | OTel SDK | OTel Collector (OSS) | | ||
| [**Direct OTLP Ingest**](https://docs.datadoghq.com/opentelemetry/setup/agentless) | OTel API | OTel SDK | N/A (Direct to Datadog endpoint) | | ||
|
||
## Feature compatibility{% #feature-compatibility %} | ||
|
||
The following table shows feature compatibility across different setups: | ||
|
||
| Feature | Datadog SDK + DDOT (Recommended) | OTel SDK + DDOT | OTel SDK + OSS Collector | Direct OTLP Ingest | | ||
| ------------------------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ||
| [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/) | yes | yes | yes | yes | | ||
| [Correlated Traces, Metrics, Logs](https://docs.datadoghq.com/tracing/other_telemetry/) | yes | yes | yes | yes | | ||
| [Distributed Tracing](https://docs.datadoghq.com/tracing/trace_collection/) | yes | yes | yes | yes | | ||
| [Runtime Metrics](https://docs.datadoghq.com/tracing/metrics/runtime_metrics/) | yes | yes(Java, .NET, Go only) | yes(Java, .NET, Go only) | yes(Java, .NET, Go only) | | ||
| [Span Links](https://docs.datadoghq.com/tracing/trace_collection/span_links/) | yes | yes | yes | yes | | ||
| [Trace Metrics](https://docs.datadoghq.com/tracing/metrics/metrics_namespace/) | yes | yes | yes | yes(Sampled (Trace metrics are calculated on the backend based on ingested spans that have passed through sampling, not on 100% of local traces before sampling.)) | | ||
| [Cloud Network Monitoring](https://docs.datadoghq.com/network_monitoring/performance/) (CNM) | yes | yes | | ||
| [Live Container Monitoring/Kubernetes Explorer](https://docs.datadoghq.com/containers/) | yes | yes | | ||
| [Live Processes](https://docs.datadoghq.com/infrastructure/process/) | yes | yes | | ||
| [Universal Service Monitoring](https://docs.datadoghq.com/universal_service_monitoring/) (USM) | yes | yes | | ||
| [App and API Protection](https://docs.datadoghq.com/security/application_security/) (AAP) | yes | | ||
| [Continuous Profiler](https://docs.datadoghq.com/profiler/) | yes | | ||
| [Data Jobs Monitoring](https://docs.datadoghq.com/data_jobs/) (DJM) | yes | | ||
| [Data Streams Monitoring](https://docs.datadoghq.com/data_streams/) (DSM) | yes | N/A (OTel does not offer DSM functionality) | N/A (OTel does not offer DSM functionality) | | ||
| [Database Monitoring](https://docs.datadoghq.com/database_monitoring/) (DBM) | yes | N/A (OTel does not offer DBM functionality) | N/A (OTel does not offer DBM functionality) | | ||
| [Real User Monitoring](https://docs.datadoghq.com/real_user_monitoring/) (RUM) | yes | | ||
| [Source code integration](https://docs.datadoghq.com/integrations/guide/source-code-integration/) | yes | | ||
|
||
## More details{% #more-details %} | ||
|
||
### Runtime metrics{% #runtime-metrics %} | ||
|
||
Setups using the OpenTelemetry SDK follow the [OpenTelemetry Runtime Metrics](https://docs.datadoghq.com/opentelemetry/integrations/runtime_metrics/) specification. | ||
|
||
### Real User Monitoring (RUM){% #real-user-monitoring-rum %} | ||
|
||
To enable full RUM functionality, you need to [inject supported headers](https://docs.datadoghq.com/real_user_monitoring/correlate_with_other_telemetry/apm/) to correlate RUM and traces. | ||
|
||
### Cloud Network Monitoring (CNM){% #cloud-network-monitoring-cnm %} | ||
|
||
Span-level or endpoint-level monitoring is **not** supported. | ||
|
||
For more information, see [Cloud Network Monitoring Setup](https://docs.datadoghq.com/network_monitoring/cloud_network_monitoring/setup/). | ||
|
||
### Source Code Integration{% #source-code-integration %} | ||
|
||
For unsupported languages in OpenTelemetry setups, [configure telemetry tagging](https://docs.datadoghq.com/integrations/guide/source-code-integration/?tab=go#configure-telemetry-tagging) to link data to a specific commit. | ||
|
||
## Best practices{% #best-practices %} | ||
|
||
When using Datadog and OpenTelemetry together, Datadog recommends the following best practices to ensure optimal performance and to avoid potential issues: | ||
|
||
- **Avoid mixed instrumentation**: Do not use both a Datadog SDK and an OpenTelemetry SDK to instrument the same application, as this leads to undefined behavior. | ||
- **Avoid Agent and separate Collector on same host**: Do not run the Datadog Agent and a separate OpenTelemetry Collector on the same host, as this may cause issues. However, you can run Agents and Collectors on different hosts within the same fleet. | ||
|
||
## Further reading{% #further-reading %} | ||
|
||
- [OpenTelemetry Troubleshooting](https://docs.datadoghq.com/opentelemetry/troubleshooting/) |
78 changes: 78 additions & 0 deletions
78
content/en/opentelemetry_mdoc/config/collector_batch_memory/index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
--- | ||
title: Batch and Memory Settings | ||
description: Datadog, the leading service for cloud-scale monitoring. | ||
breadcrumbs: >- | ||
Docs > OpenTelemetry in Datadog > OpenTelemetry Configuration > Batch and | ||
Memory Settings | ||
sourceUrl: >- | ||
https://docs.datadoghq.com/opentelemetry/config/collector_batch_memory/index.html | ||
--- | ||
|
||
# Batch and Memory Settings | ||
|
||
## Overview{% #overview %} | ||
|
||
To edit your OpenTelemetry Collector batch and memory settings, configure the [batch processor](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/batchprocessor) in your Datadog Exporter. | ||
|
||
For more information, see the OpenTelemetry project documentation for the [batch processor](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/batchprocessor). | ||
|
||
## Setup{% #setup %} | ||
|
||
{% tab title="Host" %} | ||
Add the following lines to your Collector configuration: | ||
|
||
```yaml | ||
processors: | ||
batch: | ||
# Datadog APM Intake limit is 3.2MB. | ||
send_batch_max_size: 1000 | ||
send_batch_size: 100 | ||
timeout: 10s | ||
memory_limiter: | ||
check_interval: 1s | ||
limit_mib: 1000 | ||
``` | ||
|
||
{% /tab %} | ||
|
||
{% tab title="Kubernetes" %} | ||
Add the following lines to `values.yaml`: | ||
|
||
```yaml | ||
resources: | ||
limits: | ||
cpu: 512m | ||
memory: 1Gi | ||
``` | ||
|
||
Add the following in the Collector configuration: | ||
|
||
```yaml | ||
processors: | ||
batch: | ||
# Datadog APM Intake limit is 3.2MB. | ||
send_batch_max_size: 1000 | ||
send_batch_size: 100 | ||
timeout: 10s | ||
``` | ||
|
||
{% /tab %} | ||
|
||
## Data collected{% #data-collected %} | ||
|
||
None. | ||
|
||
## Full example configuration{% #full-example-configuration %} | ||
|
||
For a full working example configuration with the Datadog exporter, see [`batch-memory.yaml`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/batch-memory.yaml). | ||
|
||
## Example logging output{% #example-logging-output %} | ||
|
||
``` | ||
2023-12-05T09:52:58.568Z warn memorylimiterprocessor@v0.90.1/memorylimiter.go:276 | ||
Memory usage is above hard limit. Forcing a GC. | ||
{"kind": "processor", "name": "memory_limiter", "pipeline": "traces", "cur_mem_mib": 44} | ||
2023-12-05T09:52:58.590Z info memorylimiterprocessor@v0.90.1/memorylimiter.go:266 | ||
Memory usage after GC. | ||
{"kind": "processor", "name": "memory_limiter", "pipeline": "traces", "cur_mem_mib": 34} | ||
``` |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just noticed the camelcase, I'll fix it to
source_url
.