DD_APM_INSTRUMENTATION_LIBRARIES
- APM ライブラリのカスタマイズ
DD_APM_INSTRUMENTATION_ENABLED
が設定されている場合、デフォルトでは Java、Python、Ruby、Node.js、.NET Core の Datadog APM ライブラリがインストールされます。DD_APM_INSTRUMENTATION_LIBRARIES
は、インストールするライブラリを上書きするために使用されます。値は、コロンで区切られたライブラリ名とバージョンのペアをカンマ区切りで並べた文字列です。
DD_APM_INSTRUMENTATION_LIBRARIES
の例:
DD_APM_INSTRUMENTATION_LIBRARIES="java:1"
- Java の Datadog APM ライブラリのみを、メジャーバージョン 1 のリリースラインに固定してインストールします。DD_APM_INSTRUMENTATION_LIBRARIES="java:1,python:2"
- Java と Python の Datadog APM ライブラリのみを、メジャーバージョンをそれぞれ 1 と 2 に固定してインストールします。DD_APM_INSTRUMENTATION_LIBRARIES="java:1.38.0,python:2.10.5"
- Java と Python の Datadog APM ライブラリのみを、それぞれ特定のバージョン 1.38.0 と 2.10.5 に固定してインストールします。
利用可能なバージョンは、各言語のソースリポジトリに一覧があります。
DD_APM_INSTRUMENTATION_LIBRARIES
- APM ライブラリのカスタマイズ
DD_APM_INSTRUMENTATION_ENABLED
が設定されている場合、デフォルトでは Java、Python、Ruby、Node.js、.NET Core の Datadog APM ライブラリがインストールされます。DD_APM_INSTRUMENTATION_LIBRARIES
は、インストールするライブラリを上書きするために使用されます。値は、コロンで区切られたライブラリ名とバージョンのペアをカンマ区切りで並べた文字列です。
DD_APM_INSTRUMENTATION_LIBRARIES
の例:
DD_APM_INSTRUMENTATION_LIBRARIES="java:1"
- Java の Datadog APM ライブラリのみを、メジャーバージョン 1 のリリースラインに固定してインストールします。DD_APM_INSTRUMENTATION_LIBRARIES="java:1,python:2"
- Java と Python の Datadog APM ライブラリのみを、メジャーバージョンをそれぞれ 1 と 2 に固定してインストールします。DD_APM_INSTRUMENTATION_LIBRARIES="java:1.38.0,python:2.10.5"
- Java と Python の Datadog APM ライブラリのみを、それぞれ特定のバージョン 1.38.0 と 2.10.5 に固定してインストールします。
利用可能なバージョンは、各言語のソースリポジトリに一覧があります:
ネームスペース単位でインスツルメンテーションを有効/無効にする
特定のネームスペース内のアプリケーションに対して、インスツルメンテーションを有効または無効にできます。enabledNamespaces と disabledNamespaces は同時に設定できません。
どのファイルを編集するかは、Datadog Operator か Helm で Single Step Instrumentation を有効にしたかによって異なります。
特定のネームスペースでインスツルメンテーションを有効にするには、datadog-agent.yaml
に enabledNamespaces
を構成します。
features:
apm:
instrumentation:
enabled: true
enabledNamespaces: # インスツルメントを有効にするネームスペースを追加
- default
- applications
特定のネームスペースでインスツルメンテーションを無効にするには、datadog-agent.yaml
に disabledNamespaces
を構成します。
features:
apm:
instrumentation:
enabled: true
disabledNamespaces: # インスツルメンテーションを無効にするネームスペースを追加
- default
- applications
特定のネームスペースでインスツルメンテーションを有効にするには、datadog-values.yaml
に enabledNamespaces
を構成します。
datadog:
apm:
instrumentation:
enabled: true
enabledNamespaces: # インスツルメントを有効にするネームスペースを追加
- namespace_1
- namespace_2
特定のネームスペースでインスツルメンテーションを無効にするには、datadog-values.yaml
に disabledNamespaces
を構成します。
datadog:
apm:
instrumentation:
enabled: true
disabledNamespaces: # インスツルメンテーションを無効にするネームスペースを追加
- namespace_1
- namespace_2
トレースライブラリバージョンの指定
Datadog Cluster Agent v7.52.0+ 以降では、指定したトレースライブラリに基づいて、一部のアプリケーションのみを自動的にインスツルメントできます。
アプリケーションが使用する言語に対応する Datadog のトレースライブラリとそのバージョンを指定すると、その言語で書かれたアプリケーションを自動的にインスツルメントできます。構成方法は以下の 2 つがあり、優先順位は次の順序で適用されます。
- サービスレベルで指定、または
- クラスターレベルで指定
デフォルト: もしライブラリバージョンを一切指定せずに apm.instrumentation.enabled=true
を設定した場合、サポートされている言語で書かれたアプリケーションは、最新のトレースライブラリバージョンを使用して自動的にインスツルメントされます。
サービスレベルでの指定
特定のポッドで動作するアプリケーションを自動的にインスツルメントするには、ポッドの spec にアプリケーション対応の言語アノテーションとライブラリバージョンを追加してください。
言語 | ポッドアノテーション |
---|
Java | admission.datadoghq.com/java-lib.version: "<CONTAINER IMAGE TAG>" |
Node.js | admission.datadoghq.com/js-lib.version: "<CONTAINER IMAGE TAG>" |
Python | admission.datadoghq.com/python-lib.version: "<CONTAINER IMAGE TAG>" |
.NET | admission.datadoghq.com/dotnet-lib.version: "<CONTAINER IMAGE TAG>" |
Ruby | admission.datadoghq.com/ruby-lib.version: "<CONTAINER IMAGE TAG>" |
<CONTAINER IMAGE TAG>
を、使用したいライブラリのバージョンに置き換えてください。利用可能なバージョンは、Datadog コンテナレジストリと各言語のトレーサーのソースリポジトリに掲載されています。
major バージョンのライブラリリリースでは後方互換性が壊れる変更が含まれる場合があるため、latest
タグを使用する際は注意してください。
例えば、Java アプリケーションを自動的にインスツルメントする場合は以下のようになります。
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
# ...
spec:
template:
metadata:
annotations:
admission.datadoghq.com/java-lib.version: "<CONTAINER IMAGE TAG>"
spec:
containers:
- # ...
クラスターレベルでの指定
ポッドごとにアノテーションを用いて自動インスツルメントを有効にしない場合は、Single Step Instrumentation の構成を使ってクラスター全体でどの言語をインスツルメントするか指定できます。apm.instrumentation.libVersions
が設定されている場合、指定した言語のアプリケーションのみ、指定したライブラリバージョンでインスツルメントされます。
どのファイルを構成するかは、Datadog Operator か Helm を使って Single Step Instrumentation を有効にしたかによって異なります。
例えば、.NET、Python、Node.js アプリケーションをインスツルメントする場合は、datadog-agent.yaml
ファイルに以下の構成を追加します。
features:
apm:
instrumentation:
enabled: true
libVersions: # 設定したいライブラリとバージョンを追加
dotnet: "3.2.0"
python: "1.20.6"
js: "4.17.0"
例えば、.NET、Python、Node.js アプリケーションをインスツルメントする場合は、datadog-values.yaml
ファイルに以下の構成を追加します。
datadog:
apm:
instrumentation:
enabled: true
libVersions: # 設定したいライブラリとバージョンを追加
dotnet: "3.2.0"
python: "1.20.6"
js: "4.17.0"
コンテナレジストリ
Datadog は、以下の gcr.io、Docker Hub、Amazon ECR にインスツルメンテーションライブラリのイメージを公開しています。
Datadog Cluster Agent の構成にある DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY
環境変数は、Admission Controller が使用するレジストリを指定します。デフォルト値は、gcr.io/datadoghq
です。
ローカルコンテナレジストリでイメージをホストしている場合は、docker.io/datadog
、public.ecr.aws/datadog
、または他の URL に変更することで、別のレジストリからトレーシングライブラリを引き出すことができます。
コンテナレジストリを変更する手順については、コンテナレジストリの変更を参照してください。