Datadog と OpenTelemetry の互換性
概要
Datadog は、完全な OpenTelemetry (OTel) 実装から OpenTelemetry と Datadog コンポーネントを組み合わせたハイブリッド構成まで、さまざまなユースケースに対応する複数のセットアップオプションを提供しています。このページでは、さまざまなセットアップとサポートされている Datadog 製品および機能の互換性について説明し、ニーズに最適な構成を選択する手助けをします。
セットアップ
Datadog は、OpenTelemetry を使用するためのいくつかの構成をサポートしています。これらのセットアップの主な違いは、使用する SDK (OpenTelemetry または Datadog) と、テレメトリデータを処理して転送するために使用されるコレクターの違いです。
機能の互換性
以下の表は、さまざまなセットアップ間の機能互換性を示しています。
APIサポート
Datadog SDK は、さまざまな言語で OpenTelemetry のトレース、メトリクス、ログ API をサポートしています。以下の表で、ご利用の言語のセットアップガイドとサポートの詳細を確認してください。
詳細情報
LLM Observability
生成 AI 属性を持つOpenTelemetryトレースは、自動的に LLM Observability トレースに変換されます。この変換を無効にするには、LLM Observability 変換の無効化を参照してください。
ランタイムメトリクス
- Datadog SDK の設定: DogStatsD (UDP ポート 8125) を使用してランタイムメトリクスを発行します。Datadog Agent で DogStatsD が有効になっていることを確認してください。
- OpenTelemetry SDK の設定: OpenTelemetry ランタイムメトリクス仕様に従い、通常は OTLP (ポート 4317/4318) を使用して送信されます。
Real User Monitoring (RUM)
完全な RUM 機能を有効にするには、RUM とトレースを相関させるためにサポートされているヘッダーを注入する必要があります。
Cloud Network Monitoring (CNM)
スパンレベルまたはエンドポイントレベルのモニタリングはサポートされていません。
詳細については、Cloud Network Monitoring の設定を参照してください。
ソースコードインテグレーション
OpenTelemetry のセットアップでサポートされていない言語については、テレメトリタグ付けの設定を行い、データを特定のコミットにリンクします。
サポートレベル
Datadog は OpenTelemetry コンポーネントおよび構成に対して、さまざまなサポートレベルを提供します。
OpenTelemetry Collector は多くの環境にデプロイできますが、特定のプラットフォームには固有の制限やサポート要件があります。
- AWS EKS Fargate: この環境は現在サポートされておらず、OpenTelemetry Collector と併用するとインフラストラクチャーホストの請求が不正確になります。公式サポートは将来のリリースで提供される予定です。最新の情報については、Collector セットアップガイドを参照してください。
ベストプラクティス
Datadog と OpenTelemetry を併用する際、Datadog は最適なパフォーマンスを実現し、潜在的な問題を回避するために以下のベストプラクティスを推奨します。
- 混合インスツルメンテーションを避ける: ほとんどの場合、同じアプリケーションで Datadog SDK と OpenTelemetry SDK の両方を使用しないでください。未定義の動作につながる可能性があります。
- 例外: Python などの一部の言語では、Datadog SDK と OpenTelemetry SDK の両方をインストールする必要があります。
- 常に、言語固有のインスツルメンテーションドキュメントに従い、正しくサポートされたセットアップを使用していることを確認してください。
- 同一ホストでの Datadog Agent と別個の Collector の併用を避ける: 同じホスト上で Datadog Agent と別個の OpenTelemetry Collector を実行しないでください。問題が発生する可能性があります。ただし、同じフリート内の異なるホストで Agent と Collector を実行することはできます。
参考資料