トレースの概要

概要

Datadog の APM (アプリケーションパフォーマンス監視機能、またはトレース) を使用して、バックエンドアプリケーションコードからトレースを収集できます。このビギナーガイドでは、トレースを Datadog に取り込む方法をご説明します。

: Datadog APM は、多くの言語とフレームワークで使用できます。アプリケーションのインスツルメンテーションのドキュメントを参照してください。

Datadog アカウント

Datadog アカウントをまだ作成していない場合は作成します。

Datadog Agent

Datadog Agent をインストールする前に、以下のコマンドを使用して Vagrant Ubuntu 22.04 仮想マシンを設定します。Vagrant の詳細については、はじめにページをご参照ください。

vagrant init ubuntu/jammy64
vagrant up
vagrant ssh

Datadog API キーを付加した 1 行のインストールコマンドを使用して、Datadog Host Agent をインストールします。

DD_API_KEY=<DATADOG_API_KEY> DD_SITE="" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"

検証

ステータスコマンドを使用して、Agent が実行されていることを確認します。

sudo datadog-agent status

数分経過したら、Datadog で Infrastructure List をチェックして、Agent がアカウントに接続されていることを確認します。

Datadog APM

アプリ内のドキュメントに従ってください (推奨)

残りのステップを実行し、Datadog サイト内のクイックスタート手順に従って、最高のエクスペリエンスを実現します。例:

  • デプロイコンフィギュレーション (この場合はホストベースのデプロイメント) を範囲とする段階的な手順。
  • serviceenvversion タグを動的に設定します。
  • セットアップ中に Continuous Profiler、トレースの 100% の取り込み、およびトレース ID 挿入を有効にします。

APM を有効にする

Agent v6 と v7 の最新バージョンでは、APM がデフォルトで有効になっています。これは、Agent の datadog.yaml コンフィギュレーションファイルで確認できます。

# apm_config:
##   APM Agent の実行の有無
#   enabled: true

trace-agent.log でも確認できます。

# /var/log/datadog/trace-agent.log:
2019-03-25 20:33:18 INFO (run.go:136) - trace-agent running on host ubuntu-jammy
2019-03-25 20:33:18 INFO (api.go:144) - listening for traces at http://localhost:8126
2019-03-25 20:33:28 INFO (api.go:341) - no data received
2019-03-25 20:34:18 INFO (service.go:63) - total number of tracked services: 0

環境名

最適な体験を得るために、環境変数 DD_ENV を使用して、サービスのトレーサーを通じて env を構成することをお勧めします。

さらに、トレーサーでログの挿入が有効になっている場合、env はトレースとログ全体で一貫しています。これがどのように機能するかについては、統合サービスタグ付けを参照してください。

または、datadog.yaml を更新して環境に名前を付けて、apm_configenv を設定します。APM の env の設定の詳細については、スコープへのプライマリタグの設定に関するガイドを参照してください。

APM アプリケーション

インストール

アプリケーションを設定する前に、まず Ubuntu VM 上に pip をインストールし、次に flaskddtrace をインストールします。

sudo apt-get install python-pip
pip install flask
pip install ddtrace

作成

Ubuntu VM 上に、以下の内容でアプリケーション hello.py を作成します。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'hello world'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5050)

実行

ddtrace を使用して hello.py を実行します。ddtrace は Datadog でアプリケーションを自動的に計測します。

export DD_SERVICE=hello
ddtrace-run python hello.py

次のような出力が表示されます。

* Serving Flask app "hello" (lazy loading)
  ...
* Running on http://0.0.0.0:5050/ (Press CTRL+C to quit)

テスト

アプリケーションをテストし、curl を使用して Datadog にトレースを送信します。アプリケーションは (上述のように) 実行中のはずです。別のコマンドプロンプトで、以下を実行します。

vagrant ssh
curl http://0.0.0.0:5050/

以下が出力されます。

hello world

数分経過すると、Datadog の hello サービスの下にトレースが表示されます。サービスカタログまたはトレースの一覧をご確認ください。

トレースサービス一覧

その他の参考資料