- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
OTLP Ingest in the Agent は、OpenTelemetry SDK でインスツルメントされたアプリケーションから Datadog Agent に直接テレメトリーデータを送信する方法です。バージョン 6.32.0 と 7.32.0 以降、Datadog Agent は gRPC または HTTP を通じて OTLP トレースと OTLP メトリクスを取り込むことができるようになりました。
OTLP Ingest in the Agent では、Datadog Agent で観測可能性機能を利用することができます。アプリケーションは OpenTelemetry SDK でインスツルメントされているため、Application Security Management、Continuous Profiler、ランタイムメトリクス、取り込みルールなどの Datadog ライブラリ固有の機能は、取り込まれたデータでは利用できません。
まず、OpenTelemetry SDK を使って、アプリケーションをインスツルメンテーションします。その後、テレメトリーデータを OTLP フォーマットで Datadog Agent にエクスポートします。この構成は、以下のページで説明されているように、サービスがデプロイされているインフラストラクチャーの種類によって異なります。最新の OTLP バージョンと互換性があることが目的ですが、Agent の OTLP 取り込みは、すべての OTLP バージョンと互換性があるわけではありません。Agent changelog で OTLP のバージョン互換性を確認してください。
OpenTelemetry のインスツルメンテーションのドキュメントを読んで、インスツルメンテーションを Agent に向ける方法を理解してください。以下に説明する receiver
セクションは OpenTelemetry Collector OTLP レシーバー構成スキーマに従っています。
OTLP の取り込みはデフォルトではオフになっており、datadog.yaml
ファイルの構成を更新するか、環境変数を設定することでオンにすることが可能です。以下の datadog.yaml
構成は、デフォルトのポートでエンドポイントを有効にします。
gRPC の場合、デフォルトは 4317 番ポートです。
otlp_config:
receiver:
protocols:
grpc:
endpoint: localhost:4317
HTTP の場合、デフォルトは 4318 番ポートです。
otlp_config:
receiver:
protocols:
http:
endpoint: localhost:4318
または、環境変数でポートを指定して、エンドポイントを構成します。
localhost:4317
): DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT
localhost:4318
): DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT
これらは core Agent と trace Agent プロセスの両方に渡さなければなりません。コンテナ環境で実行する場合は、ローカルではないインターフェイスでもサーバーを利用できるように、localhost
の代わりに 0.0.0.0
を使用します。
この機能には、gRPC と HTTP のどちらかを構成します。以下は、両方の構成を示すアプリケーション例です。
Datadog Docker Agent のセットアップに従ってください。
Datadog Agent コンテナでは、以下のエンドポイント環境変数を設定し、対応するポートを公開します。
DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT
を 0.0.0.0:4317
に設定し、ポート 4317
を公開します。DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT
を 0.0.0.0:4318
に設定し、ポート 4318
を公開します。Kubernetes Agent のセットアップに従ってください。
トレース Agent コンテナとコア Agent コンテナの両方で、以下の環境変数を構成します。
gPRC の場合:
name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT # enables gRPC receiver on port 4317
value: "0.0.0.0:4317"
HTTP の場合:
name: DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT # enables HTTP receiver on port 4318
value: "0.0.0.0:4318"
コンテナポート 4317 または 4318 をコア Agent コンテナのホストポートにマッピングします。
gPRC の場合:
ports:
- containerPort: 4317
hostPort: 4317
name: traceportgrpc
protocol: TCP
HTTP の場合
ports:
- containerPort: 4318
hostPort: 4318
name: traceporthttp
protocol: TCP
Kubernetes Agent のセットアップに従ってください。
values.yaml
ファイルの datadog.otlp
セクションを編集して、Agent で OTLP エンドポイントを有効にします。
gRPC の場合:
otlp:
receiver:
protocols:
grpc:
enabled: true
HTTP の場合:
otlp:
receiver:
protocols:
http:
enabled: true
これは、各プロトコルをデフォルトのポート (OTLP/gRPC は 4317
、OTLP/HTTP は 4318
) で有効にするものです。
Kubernetes Agent のセットアップに従ってください。
優先プロトコルを有効にします。
gRPC の場合:
--set "datadog.otlp.receiver.protocols.grpc.enabled=true"
HTTP の場合:
--set "datadog.otlp.receiver.protocols.http.enabled=true"
これは、各プロトコルをデフォルトのポート (OTLP/gRPC は 4317
、OTLP/HTTP は 4318
) で有効にするものです。
Datadog Agent でサポートされている環境変数や設定は、他にも多数あります。それらすべての概要を知るには、構成テンプレートを参照してください。
アプリケーションコンテナでは、環境変数 OTEL_EXPORTER_OTLP_ENDPOINT
に、Datadog Agent コンテナを指すように設定します。例:
OTEL_EXPORTER_OTLP_ENDPOINT=http://<datadog-agent>:4318.
両方のコンテナが同じブリッジネットワークに定義されている必要がありますが、これは Docker Compose を使用している場合に自動的に処理されます。そうでない場合は、Docker アプリケーションのトレースの Docker の例に従って、正しいポートでブリッジネットワークをセットアップしてください。
アプリケーションデプロイファイルで、OTEL_EXPORTER_OTLP_ENDPOINT
環境変数を使って、OpenTelemetry クライアントがトレースを送信するエンドポイントを構成します。
gPRC の場合:
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://$(HOST_IP):4317" # sends to gRPC receiver on port 4317
HTTP の場合:
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://$(HOST_IP):4318" # sends to HTTP receiver on port 4318
/
ルートパスの代わりに /v1/traces
に送らなければなりません。Datadog は、すぐに使えるダッシュボードを提供しており、コピーしてカスタマイズすることができます。Datadog のすぐに使える OpenTelemetry ダッシュボードを使用するには
OpenTelemetry インテグレーションをインストールします。
Dashboards > Dashboards list にアクセスし、opentelemetry
を検索します。
Host Metrics ダッシュボードは、ホストメトリクスレシーバー から収集されたデータ用です。Collector Metrics ダッシュボードは、有効化するメトリクスレシーバーに応じて収集された他の種類のメトリクス用です。
お役に立つドキュメント、リンクや記事: