- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Agent 6.0.0 では、Trace Agent はデフォルトで有効になっています。オフにした場合は、gcr.io/datadoghq/agent
コンテナで環境変数として DD_APM_ENABLED=true
を渡すことで再び有効にすることができます。
このページの CLI コマンドは Docker ランタイム用です。containerd ランタイムは docker
を nerdctl
に、Podman ランタイムは podman
に置き換えてください。
docker run
コマンドにオプション -p 127.0.0.1:8126:8126/tcp
を追加すると、ポート 8126/tcp
で 自分のホストからのみ トレースを利用できます。
任意のホスト からトレースを利用するには、-p 8126:8126/tcp
を使用します。
たとえば、次のコマンドを使用すると、Agent はユーザーのホストからのみトレースを受信します。
docker run -d --cgroupns host \
--pid host \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-p 127.0.0.1:8126:8126/tcp \
-e DD_API_KEY=<DATADOG_API_KEY> \
-e DD_APM_ENABLED=true \
-e DD_SITE=<DATADOG_SITE> \
gcr.io/datadoghq/agent:latest
<DATADOG_SITE>
が である場合 (デフォルトは
datadoghq.com
)。
docker run -d -p 127.0.0.1:8126:8126/tcp \
-e DD_API_KEY=<DATADOG_API_KEY> \
-e DD_APM_ENABLED=true \
-e DD_SITE=<DATADOG_SITE> \
gcr.io/datadoghq/agent:latest
<DATADOG_SITE>
が である場合 (デフォルトは
datadoghq.com
)。
Docker Agent 内のトレースに利用可能なすべての環境変数をリストします。
環境変数 | 説明 |
---|---|
DD_API_KEY | Datadog API キー |
DD_PROXY_HTTPS | 使用するプロキシの URL をセットアップします。 |
DD_APM_REPLACE_TAGS | スパンのタグから機密データをスクラブします。 |
DD_APM_FILTER_TAGS_REQUIRE | Datadog に送信されるためにトレースになくてはならない必須タグを定義します。 |
DD_APM_FILTER_TAGS_REJECT | 拒否タグを定義します。Agent はこれらのタグを持つトレースを削除します。 |
DD_HOSTNAME | 自動検出が失敗した場合、または Datadog Cluster Agent を実行する場合に、メトリクスに使用するホスト名を手動で設定します。 |
DD_DOGSTATSD_PORT | DogStatsD ポートを設定します。 |
DD_APM_RECEIVER_SOCKET | 設定した場合、Unix Domain Sockets からトレースを収集し、ホスト名とポートコンフィギュレーションよりも優先します。デフォルトでは設定されていません。設定する場合は、有効な sock ファイルを指定する必要があります。 |
DD_BIND_HOST | StatsD とレシーバーのホスト名を設定します。 |
DD_LOG_LEVEL | ログレベルを設定します。(trace /debug /info /warn /error /critical /off ) |
DD_APM_ENABLED | true に設定すると (デフォルト)、Datadog Agent はトレースとトレースメトリクスを受け付けます。 |
DD_APM_CONNECTION_LIMIT | 30 秒のタイムウィンドウに対する最大接続数の上限を設定します。デフォルトの上限は 2000 です。 |
DD_APM_DD_URL | トレースが送信される Datadog API エンドポイントを設定します: https://trace.agent. 。デフォルトは https://trace.agent.datadoghq.com 。 |
DD_APM_RECEIVER_PORT | Datadog Agent のトレースレシーバーがリスニングするポート。デフォルト値は 8126 です。 |
DD_APM_NON_LOCAL_TRAFFIC | 他のコンテナからのトレース時に、非ローカルトラフィックを許可します。 |
DD_APM_IGNORE_RESOURCES | Agent が無視するリソースを構成します。書式はカンマ区切りの正規表現です。例: GET /ignore-me,(GET|POST) /and-also-me となります。 |
DogStatsD と同様に、Docker ネットワークまたは Docker ホスト IP を使用して、他のコンテナから Agent にトレースを送信できます。
最初に、ユーザー定義のブリッジネットワークを作成します。
docker network create <NETWORK_NAME>
このページの CLI コマンドは Docker ランタイム用です。containerd ランタイムは docker
を nerdctl
に、Podman ランタイムは podman
に置き換えてください。
次に、先ほど作成したネットワークに接続されている Agent とアプリケーションコンテナを起動します。
# Datadog Agent
docker run -d --name datadog-agent \
--network <NETWORK_NAME> \
--cgroupns host \
--pid host \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY=<DATADOG_API_KEY> \
-e DD_APM_ENABLED=true \
-e DD_SITE=<DATADOG_SITE> \
-e DD_APM_NON_LOCAL_TRAFFIC=true \
gcr.io/datadoghq/agent:latest
# アプリケーション
docker run -d --name app \
--network <NETWORK_NAME> \
-e DD_AGENT_HOST=datadog-agent \
company/app:latest
<DATADOG_SITE>
が である場合 (デフォルトは
datadoghq.com
)。
# Datadog Agent
docker run -d --name datadog-agent \
--cgroupns host \
--pid host \
--network "<NETWORK_NAME>" \
-e DD_API_KEY=<DATADOG_API_KEY> \
-e DD_APM_ENABLED=true \
-e DD_SITE=<DATADOG_SITE> \
-e DD_APM_NON_LOCAL_TRAFFIC=true \
gcr.io/datadoghq/agent:latest
# アプリケーション
docker run -d --name app \
--network "<NETWORK_NAME>" \
-e DD_AGENT_HOST=datadog-agent \
company/app:latest
<DATADOG_SITE>
が である場合 (デフォルトは
datadoghq.com
)。
これで app
コンテナ内のホスト名 datadog-agent
が公開されます。
docker-compose
を使用している場合、<NETWORK_NAME>
パラメーターは、docker-compose.yml
の networks
セクションに定義されている名前になります。
このアドレスにトレースを送信するには、アプリケーショントレーサーを構成する必要があります。アプリケーションコンテナで、Agent コンテナ名として DD_AGENT_HOST
、Agent Trace ポートとして DD_TRACE_AGENT_PORT
を使用して、環境変数を設定します。上の例では、ホストに datadog-agent
、ポートに 8126
を使用しています。(デフォルト値なので設定する必要はありません。)
または、サポートされている言語ごとに、以下の例を参照して Agent ホストを手動で設定します。
環境変数を使用して Java Agent 構成を更新します。
DD_AGENT_HOST=datadog-agent \
DD_TRACE_AGENT_PORT=8126 \
java -javaagent:/path/to/the/dd-java-agent.jar -jar /your/app.jar
または、システムプロパティを使用して更新します。
java -javaagent:/path/to/the/dd-java-agent.jar \
-Ddd.agent.host=datadog-agent \
-Ddd.agent.port=8126 \
-jar /your/app.jar
from ddtrace import tracer
tracer.configure(
hostname='datadog-agent',
port=8126,
)
Datadog.configure do |c|
c.agent.host = 'datadog-agent'
c.agent.port = 8126
end
package main
import "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
func main() {
tracer.Start(tracer.WithAgentAddr("datadog-agent:8126"))
defer tracer.Stop()
}
const tracer = require('dd-trace').init({
hostname: 'datadog-agent',
port: 8126
});
インスツルメンテーションされたアプリを起動する前に変数を設定します。
# 環境変数
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
export CORECLR_PROFILER_PATH=<SYSTEM_DEPENDENT_PATH>
export DD_DOTNET_TRACER_HOME=/opt/datadog
# コンテナ
export DD_AGENT_HOST=datadog-agent
export DD_TRACE_AGENT_PORT=8126
# アプリケーションの開始
dotnet example.dll
環境変数 CORECLR_PROFILER_PATH
の値は、アプリケーションが動作しているシステムに応じて変化します。
オペレーティングシステムとプロセスアーキテクチャ | CORECLR_PROFILER_PATH 値 |
---|---|
Alpine Linux x64 | <APP_DIRECTORY>/datadog/linux-musl-x64/Datadog.Trace.ClrProfiler.Native.so |
Linux x64 | <APP_DIRECTORY>/datadog/linux-x64/Datadog.Trace.ClrProfiler.Native.so |
Linux ARM64 | <APP_DIRECTORY>/datadog/linux-arm64/Datadog.Trace.ClrProfiler.Native.so |
Windows x64 | <APP_DIRECTORY>\datadog\win-x64\Datadog.Trace.ClrProfiler.Native.dll |
Windows x86 | <APP_DIRECTORY>\datadog\win-x86\Datadog.Trace.ClrProfiler.Native.dll |
上の表で、<APP_DIRECTORY>
は、アプリケーションの .dll
ファイルを含むディレクトリを指します。
Agent コンテナポート 8126
は、直接ホストにリンクしている必要があります。
このコンテナのデフォルトのルートにレポートを送信するようにアプリケーショントレーサーを構成します (デフォルトのルートは ip route
コマンドを使用して決定)。
次の Python Tracer の例では、デフォルトのルートを 172.17.0.1
と仮定しています。
from ddtrace import tracer
tracer.configure(hostname='172.17.0.1', port=8126)