Datadog SDK で OpenTelemetry の環境変数を使用する

“Datadog SDK は OpenTelemetry Tracing API を実装しており、OpenTelemetry の環境変数を使用してアプリケーションの Datadog トレーシングを設定できます。 既存の設定をほとんど変更せずにアプリケーションの OpenTelemetry SDK を Datadog SDK に置き換えることで、トレースと追加の Datadog テレメトリを受信できます。 このページでは、Datadog がサポートしている OpenTelemetry SDK のオプションについて説明します。”

Datadog と OpenTelemetry の環境変数が両方設定されている場合、Datadog が優先されます。Datadog のデフォルト値も OpenTelemetry のデフォルト値より優先されます。デフォルト値や詳細については、該当するSDK 設定ページをご覧ください。

一般的な SDK 設定

Datadog SDK は、以下の一般的な OpenTelemetry SDK オプションをサポートしています。詳細については、関連する OpenTelemetry ドキュメントを参照してください。

OTEL_SERVICE_NAME
Datadog の規則: DD_SERVICE
サービス名を設定します
: OTEL_RESOURCE_ATTRIBUTESservice.name が指定されている場合でも、OTEL_SERVICE_NAME が優先されます
OTEL_LOG_LEVEL
Datadog の規則: DD_LOG_LEVEL
SDK ロガーが使用するログレベルを設定します
: ログレベルを debug にすると、DD_TRACE_DEBUG=true と同じ扱いになります
Node.js および PHP SDK では、DD_TRACE_LOG_LEVEL にマッピングされます
Go SDK では、OTEL_LOG_LEVELDD_TRACE_DEBUG のマッピングに対応する値のみサポートされます:
  • info|false
  • debug|true
    未サポート: Python、.NET、Ruby、Go SDK
OTEL_PROPAGATORS
Datadog の規則: DD_TRACE_PROPAGATION_STYLE
コンマ区切りのリストとして使用する伝搬方式 (Propagators) を指定します
: 多くの Datadog SDK でサポートされる値は tracecontextb3b3multinonedatadog のみです。Java SDK では xray もサポートされます
同じ Propagator を重複登録しないよう、値は重複を取り除く必要があります
OTEL_TRACES_SAMPLER & OTEL_TRACES_SAMPLER_ARG
Datadog の規則: DD_TRACE_SAMPLE_RATE
OTEL_TRACES_SAMPLER: トレースで使用するサンプラー OTEL_TRACES_SAMPLER_ARG: サンプラーの引数として使用される文字列
: OTEL_TRACES_SAMPLER が設定されている場合にのみ、その指定値が使用されます。各サンプラータイプは、それぞれ期待する入力 (あれば) を定義しています。無効または未知の入力があった場合はログに出力され、無視されます。その場合、実装は OTEL_TRACES_SAMPLER_ARG が設定されていない場合と同様に動作しなければなりません
OTEL_TRACES_SAMPLERDD_TRACE_SAMPLE_RATE のマッピング:
  • parentbased_always_on|1.0
  • parentbased_always_off|0.0
  • parentbased_traceidratio|${OTEL_TRACES_SAMPLER_ARG}
  • always_on|1.0
  • always_off|0.0
  • traceidratio|${OTEL_TRACES_SAMPLER_ARG}
OTEL_TRACES_EXPORTER
Datadog の規則: DD_TRACE_ENABLED=false
使用するトレースエクスポーターを指定します
: none のみが受け付けられます
OTEL_METRICS_EXPORTER
Datadog の規則: DD_RUNTIME_METRICS_ENABLED=false
使用するメトリクスエクスポーターを指定します
: none のみが受け付けられます
OTEL_RESOURCE_ATTRIBUTES
Datadog の規則: DD_TAGS
リソース属性として使用されるキーと値のペアです。詳細はリソースのセマンティック規約を参照してください
: 最初の 10 個のキー・バリューのペアのみが使用され、以降は破棄されます
deployment.environment および deployment.environment.nameDD_ENV にマッピングされます
service.nameDD_SERVICE 環境変数にマッピングされます
service.versionDD_VERSION 環境変数にマッピングされます
OTEL_SDK_DISABLED
Datadog の規則: !DD_TRACE_OTEL_ENABLED
すべてのシグナルに対して SDK を無効化します
: OTEL_SDK_DISABLEDDD_TRACE_OTEL_ENABLED のマッピング:
  • true|false
  • false|true
    Ruby & Go SDK: OpenTelemetry SDK はインポートおよび設定時に自動的に有効化されるため、この設定は該当しません。

Java 固有の設定

Datadog SDK は、以下の Java 固有の OpenTelemetry 設定オプションをサポートしています。詳細については OpenTelemetry の Java エージェント設定を参照してください。

OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED
Datadog の規則: !DD_INTEGRATIONS_ENABLED
エージェントのすべてのインスツルメンテーションを無効化するには false に設定します
: OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLEDDD_INTEGRATIONS_ENABLED のマッピング:
  • true|false
  • false|true
OTEL_INSTRUMENTATION_[NAME]_ENABLED
説明: 指定した名前の OTel ドロップインインスツルメンテーションを有効/無効化します
OTEL_JAVAAGENT_CONFIGURATION_FILE
Datadog の規則: DD_TRACE_CONFIG
エージェントの設定を含む有効な Java プロパティファイルへのパス
: OTEL_JAVAAGENT_CONFIGURATION_FILE と DD_TRACE_CONFIG の両方が設定されている場合、通常の「Datadog 設定が OTel 設定を上書きする」というルールの例外として、両方のファイルから構成を適用します
OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_REQUEST_HEADERS
Datadog の規則: DD_TRACE_REQUEST_HEADER_TAGS
HTTP ヘッダー名のカンマ区切りリスト。HTTP クライアントのインスツルメンテーションは、設定されたすべてのヘッダー名に対して HTTP リクエストヘッダーの値をキャプチャします
: OTel の環境変数で設定されたヘッダーのタグ付けは、Datadog の命名規則である http.request.headers.<header-name> ではなく、http.request.header.<header-name> の OTel 規則に従います
OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_RESPONSE_HEADERS
Datadog の規則: DD_TRACE_RESPONSE_HEADER_TAGS
HTTP ヘッダー名のカンマ区切りリスト。HTTP クライアントのインスツルメンテーションは、設定されたすべてのヘッダー名に対して HTTP レスポンスヘッダーの値をキャプチャします
: OTel の環境変数で設定されたヘッダーのタグ付けは、Datadog の命名規則である http.response.headers.<header-name> ではなく、http.response.header.<header-name> の OTel 規則に従います
OTEL_INSTRUMENTATION_HTTP_SERVER_CAPTURE_REQUEST_HEADERS
Datadog の規則: DD_TRACE_REQUEST_HEADER_TAGS
HTTP ヘッダー名のカンマ区切りリスト。HTTP サーバーのインスツルメンテーションは、設定されたすべてのヘッダー名に対して HTTP リクエストヘッダーの値をキャプチャします
: OTel の環境変数で設定されたヘッダーのタグ付けは、Datadog の命名規則である http.request.headers.<header-name> ではなく、http.request.header.<header-name> の OTel 規則に従います
OTEL_INSTRUMENTATION_HTTP_SERVER_CAPTURE_RESPONSE_HEADERS
Datadog の規則: DD_TRACE_RESPONSE_HEADER_TAGS
HTTP ヘッダー名のカンマ区切りリスト。HTTP サーバーのインスツルメンテーションは、設定されたすべてのヘッダー名に対して HTTP レスポンスヘッダーの値をキャプチャします
: OTel の環境変数で設定されたヘッダーのタグ付けは、Datadog の命名規則である http.response.headers.<header-name> ではなく、http.response.header.<header-name> の OTel 規則に従います
OTEL_JAVAAGENT_EXTENSIONS
Datadog の規則: DD_TRACE_EXTENSIONS_PATH
拡張用の jar ファイルのパス、または jar ファイルを含むフォルダのパスをカンマ区切りで指定します。フォルダを指定した場合、そのフォルダにあるすべての jar ファイルが独立した拡張として扱われます

その他の参考資料

PREVIEWING: guacbot/translation-pipeline