このリポはdocker composeを利用したDocker環境向けのDatadogセットアップ(Infra, logs, apm)の方法を例で説明します。
APMの部分については
・origin_app: オリジンのComposeによりデプロイするFlaskアプリケーション
・datadog_installed_app: Datadogのセットアップを実施済みのアプリケーション
・images: Datadog UI上で動作確認の参照スクリーンショット
Step1 docker-compose.ymlにて、Datadog Agentのデプロイ定義を追加します。有効化したい機能に応じて、環境変数及びVolumesを調整します。
Step2 APMを有効化する際に、以下4点を順番に実施します。
※2-2と2-3は言語の特性によりやり方が変わる場合があります。今回はPython言語を例で説明します。
その他サポート言語についてはこちらをご参照できます。
2-1 Step1で、Datadog AgentのコンフィグにAPM有効化に必要な環境変数を設定済み
2-2 Datadogが言語毎に用意したAPM SDKを依頼に追加。Pythonの例ではrequirments.txtにddtraceを追加しています。
※DockerfileにRUNコマンドでSDKをダウンロード又はインストールのも可能です。
2-3 Dockerfileにてアプリケーションの起動コマンドに処理をSDKでラップします。Pythonの例ではDockerfileにddtrace-runで起動コマンドをラップしています。
2-4 docker-compose.ymlにて、アプリケーションのenvironmentsに必要な環境変数を追加。
Step3 Composeを実行し、コンテナの動作確認を行う。
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
dd-agent datadog/agent:latest "/bin/entrypoint.sh" datadog 15 minutes ago Up 15 minutes (healthy) 8125/udp, 8126/tcp
flask-app-web-1 flask-app:latest "ddtrace-run gunicor…" web 15 minutes ago Up 15 minutes (healthy) 0.0.0.0:80->8000/tcp, :::80->8000/tcpStep3 アプリケーションコンテナをクリックしてプロセスやメトリクス等の詳細を確認

Step5 Tracesタブに切り替えてコンテナのAPMトレース(リクエスト)を確認

Step6 任意トレースをクリックし、トレースの詳細呼び出し構造を確認

・Docker環境へのAgentセットアップ
・ComposeでのAgentセットアップ
・Composeのオフィシャル設定例


