Datadog

Datadog APM導入ガイド:概要・言語別設定・Docker/Kubernetes実装手順

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


スポンサードリンク

Datadog APM の概要と導入前提条件

Point(結論)
Datadog APM を有効化すれば、サービス間のリクエスト経路をコードレベルで可視化でき、ボトルネックやエラー原因の特定が迅速に行えます。

Reason(理由)
APM は 分散トレーシング と Datadog の分析 UI を組み合わせた機能です。バックエンドだけでなく、データベース・外部 API への呼び出しまで一括で追跡でき、公式ドキュメントは「コードレベルの分散トレーシング」として位置付けています。

参考: https://docs.datadoghq.com/tracing/

Example(具体例)

手順 操作内容 補足
1️⃣ API キー取得:Datadog コンソール → IntegrationsAPIs → 「New API Key」ボタンでキーを生成 API キーはシークレットとして管理(例: GitHub Secrets)
2️⃣ Agent インストール(Linux apt 系)
DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=<YOUR_API_KEY> bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"
Agent バージョンは 7.x 以上を推奨(公式: https://docs.datadoghq.com/agent/
3️⃣ APM 有効化DD_APM_ENABLED=truedatadog.yaml に追記、または環境変数で設定 設定ファイルの場所は /etc/datadog-agent/datadog.yaml

Point(再提示)
まずは API キー取得 → Datadog Agent (v7 以上) のインストール → DD_APM_ENABLED=true の設定 を完了させることが、APM 有効化の最小前提条件です。


主要言語別 APM 有効化手順(2026 年最新版)

共通ルール

  • 環境変数はすべて 大文字・スネークケース(例: DD_SERVICE)で統一。
  • ライブラリ側の設定オブジェクトでは camelCase(例: service, env)を使用。
  • サンプリング率・ヘッダー除外など、公式に存在しないキーは記載しません。

Java(dd-java-agent

Point
JVM 起動時に -javaagent:/opt/datadog/dd-java-agent.jar を指定するだけでトレースが取得できます。

Reason
Java エージェントはバイトコードを書き換えて自動インストルメントし、アプリ側の修正が不要です(公式: https://docs.datadoghq.com/tracing/setup_overview/java/)。

Example

ポイント
DD_TRACE_SAMPLE_RATE環境変数 でも設定可能です。
サービス名・環境はコード側で上書きしたい場合、Tracer.builder().service("override").build() のようにプログラムからも指定できます。


Python(ddtrace-run

Point
実行コマンドを ddtrace-run でラップするだけでトレースが有効化されます。

Reason
ddtrace-run がインポートフックを設定し、対象プロセス全体に自動計測を付与します(公式: https://docs.datadoghq.com/tracing/setup_overview/python/)。

Example

ポイント
グローバルタグは DD_TAGS 環境変数で設定可能です。例: export DD_TAGS="team:backend,region:ap-northeast-1"
ヘッダー除外は DD_TRACE_HEADER_TAGS で行います(例: export DD_TRACE_HEADER_TAGS="!authorization,!cookie")。


Node.js(dd-trace

Point
dd-trace パッケージをインポートし、init() で有効化します。

Reason
公式 SDK が主要フレームワーク(Express, Koa, Fastify 等)を自動検出し、ミドルウェア層でトレースを付与するためです(公式: https://docs.datadoghq.com/tracing/setup_overview/nodejs/)。

Example

ポイント
デフォルトのエージェント接続先は localhost:8126(環境変数 DD_TRACE_AGENT_HOSTNAME, DD_TRACE_AGENT_PORT で上書き可)。
ヘッダー除外はフレームワークごとのプラグイン設定で行います。例: tracer.use('express', { headers: ['x-request-id'] })


Ruby(ddtrace

Point
ddtrace gem を導入し、Datadog.configure で設定します。

Reason
公式ガイドは Rails・Sinatra の自動インストルメントを標準提供しており、設定は数行で完了します(公式: https://docs.datadoghq.com/tracing/setup_overview/ruby/)。

Example

ポイント
DD_TRACE_AGENT_HOSTNAMEDD_TRACE_AGENT_PORT は環境変数で上書き可能です。
PII 除外は header_tags の値を nil にするか、c.tracing.instrument :rails, request_headers: %w[authorization] で個別指定します。


Docker / Kubernetes 環境でのエージェント連携とリソース設定

基本方針

  • サイドカー方式または DaemonSet で Datadog Agent をデプロイし、アプリコンテナはローカル 8126 ポートへトレースを送信。
  • エージェントのリソース上限は過剰に割り当てず、CPU 200m・Memory 256Mi 程度で抑える(公式推奨: https://docs.datadoghq.com/containers/kubernetes/)。

Dockerfile と docker‑compose の具体例

Kubernetes DaemonSet(抜粋)

ポイント
* アプリ側 Pod の envDD_AGENT_HOST=datadog-agentDD_TRACE_AGENT_PORT=8126 を設定すれば自動的にエージェントへ接続できます。


トレースデータの可視化と分析(Datadog UI 活用)

Point
APM データは サービスマップ, トレース検索, ダッシュボード から直感的に確認でき、問題箇所を即座に特定できます。

Reason
UI はリアルタイムで集計されたトレース情報をカード形式で表示し、スローレスポンスやエラーレートが高いエンドポイントをハイライトします(公式 UI ガイド: https://docs.datadoghq.com/tracing/visualization/)。

操作手順例

  1. サービスマップ
    左メニュー → APM → Services → 「Service Map」タブで全サービス間の呼び出し関係がグラフ化され、エッジに平均 latency と error rate が表示されます。

  2. トレース検索とフィルタリング
    APM → Traces で検索バーに service:my-java-service env:production を入力。
    「Operation」や「HTTP status code」で絞り込み、遅延が顕著なリクエストをクリックすると個別トレースのタイムラインと各スパン(DB クエリ、外部 API 呼び出し等)が可視化されます。

  3. 主要メトリクス
    Latency (p95), Error Rate (%) が自動でダッシュボードに追加。必要に応じて APM > Dashboards からカスタムビューを作成できます。

ポイント
トレース検索結果の URL(例: https://app.datadoghq.com/apm/traces?query=service%3Amy-java-service)はチーム内共有に便利です。
「Service Overview」ウィジェットをダッシュボードに配置すると、SLO 監視がシンプルになります(公式例: https://docs.datadoghq.com/dashboards/widgets/service_overview/)。


ベストプラクティスと運用フロー

Point
APM の効果を最大化するには データ量抑制・機密情報保護・アラート設計 の 3 点を体系的に管理します。

推奨設定例

項目 推奨値 / 設定例 管理ポイント
サンプリング率 DD_TRACE_SAMPLE_RATE=0.2(本番は 20%) 環境変数で統一管理、負荷テスト時は 1.0 に切替
機密情報除外 DD_TRACE_HEADER_TAGS="!authorization,!cookie" CI パイプラインで注入、コードレビューでチェック
エラートラッキング DD_ANALYTICS_ENABLED=true + DD_ERROR_STATUS_CODES=500,502,503 Datadog の Error Tracking アラートと Slack 連携
設定の一元管理 ConfigMap / Secret に datadog-apm-env を作成し、Pod が参照 K8s 更新は kubectl rollout restart で即時反映

ポイント
サンプリングはサービスごとの負荷特性を考慮し、ConfigMap 経由で一括更新すると運用が楽です。
PII 除外はヘッダーだけでなく リクエストボディの正規表現マスク も検討(DD_TRACE_BODY_SCRUBBER は公式に存在しないため、アプリ側でミドルウェアを利用してください)。

トラブルシューティングチェックリスト

症状 確認項目
Trace が UI に出ない 1. エージェントのログ (/var/log/datadog/trace-agent.log) にエラーが無いか
2. DD_AGENT_HOSTDD_TRACE_AGENT_PORT が正しいか
3. 環境変数 DD_APM_ENABLED=true が設定されているか
Latency が異常に高い 1. サンプリング率が低すぎないか(サンプル不足)
2. ネットワーク遅延 (Agent → Datadog) を ping/traceroute で確認
3. エージェントの CPU 使用率が上限に達していないか
機密ヘッダーがタグ付けされている DD_TRACE_HEADER_TAGS に除外対象 (!authorization) が正しく設定されているか

CI/CD パイプラインへの自動導入手順

Point
CI/CD に Datadog APM 設定を組み込むことで、デプロイ時の抜け漏れが防げ、テスト環境でも同一設定で検証できます。

GitHub Actions(YAML)例

GitLab CI(YAML)例

ポイント
環境変数は GitHub SecretsGitLab CI/CD Variables に安全に保管し、ジョブ実行時に自動注入。
テスト環境では DD_APM_ENABLED=false をデフォルトとし、Pull Request 時だけ true に切り替える条件式(例: if: github.event_name == 'pull_request')を追加するとコスト削減につながります。


まとめ

  1. 前提:API キー取得 → Datadog Agent (v7+) インストール → DD_APM_ENABLED=true 設定
  2. 言語別設定はすべて公式ドキュメントに沿った環境変数・コード例で統一。
  3. コンテナ環境はサイドカーまたは DaemonSet でエージェントを配置し、リソース上限は CPU 200m / Memory 256Mi が目安。
  4. 可視化はサービスマップ・トレース検索・カスタムダッシュボードで実施。
  5. ベストプラクティスはサンプリング率、ヘッダー除外、エラートラッキングを環境変数で一元管理。
  6. CI/CD 連携により設定漏れを防止し、ステージごとに APM 有効化フラグを制御。

これらの手順とベストプラクティスをプロジェクトに組み込めば、Datadog APM の導入・運用がスムーズになり、サービス品質向上とコスト最適化の両立が実現できます。

スポンサードリンク

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


-Datadog