Python アプリケーションのトレース
Incident Management が一般に使用できるようになりました。 Incident Management が広範に使用できるようになりました。

Python アプリケーションのトレース

互換性要件

Python のバージョン 2.7+ および 3.5+ 以降がサポートされています。サポート対象のライブラリの一覧については、互換性要件ページをご覧ください。

インストールと利用開始

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

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

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

それ以外の場合、Python で記述されたアプリケーションのトレースを開始するには、Datadog トレーシングライブラリ ddtrace を、pip を使用してインストールします。

pip install ddtrace

Python アプリケーションをインスツルメントするには、記載されている ddtrace-run コマンドを使用します。これを使用するには、Python エントリーポイントコマンドを ddtrace-run でプレフィックスします。

たとえば、アプリケーションが python app.py で始まる場合、次のようになります。

ddtrace-run python app.py

APM に Datadog Agent を構成する

インスツルメントされたアプリケーションからトレースを受信するように Datadog Agent をインストールして構成します。デフォルトでは、Datadog Agent は datadog.yaml ファイルの apm_enabled: true で有効になっており、localhost:8126 でトレーストラフィックをリッスンします。コンテナ化環境の場合、以下のリンクに従って、Datadog Agent 内でトレース収集を有効にします。

  1. メインの datadog.yaml コンフィギュレーションファイルapm_non_local_traffic: true を設定します

  2. コンテナ化された環境でトレースを受信するように Agent を構成する方法については、それぞれの説明を参照してください。


  1. アプリケーションをインスツルメント化した後、トレースクライアントはデフォルトでトレースを localhost:8126 に送信します。これが正しいホストとポートでない場合は、以下の環境変数を設定して変更します。

DD_AGENT_HOSTDD_TRACE_AGENT_PORT

ホスト名やポートをコードで設定することもできます。

import os
from ddtrace import tracer

tracer.configure(
    hostname="custom-hostname",
    port="1234",
)

AWS Lambda で Datadog APM を設定するには、サーバーレス関数のトレースドキュメントを参照してください。

トレースは、HerokuCloud FoundryAWS Elastic BeanstalkAzure App Services Extension など、他の多くの環境で利用できます。

その他の環境については、その環境のインテグレーションのドキュメントを参照し、セットアップの問題が発生した場合はサポートにお問い合わせください。

より高度な使用方法、コンフィギュレーション、細かい制御については、Datadog の API ドキュメントを参照してください。

コンフィギュレーション

ddtrace-run を使用する場合、次の環境変数 (オプション) を利用できます。

環境変数デフォルト説明
DD_TRACE_DEBUGfalseトレーサーでデバッグロギングを有効化します。
DATADOG_PATCH_MODULESこのアプリケーションの実行のためにパッチされたモジュールをオーバーライドします。次のような形式になります。DATADOG_PATCH_MODULES=module:patch,module:patch...

サービスに envserviceversion を設定するには、DD_ENVDD_SERVICEDD_VERSION を使用することをおすすめします。このような環境変数の構成におすすめの方法については、統合サービスタグ付けのドキュメントをご参照ください。

環境変数デフォルト説明
DD_ENVアプリケーションの環境 (例: prodpre-prodstaging) を設定します。詳細については、環境の設定方法を参照してください。バージョン 0.38 以降で利用可能。
DD_SERVICEこのアプリケーションで使用するサービス名。値は、Web フレームワークのインテグレーション (例: Pylons、Flask、Django) 用のミドルウェアを設定する際にパススルーされます。Web インテグレーションを行わずにトレースする場合は、コード内でサービス名を設定することをお勧めします。バージョン 0.38 以降で利用可能。
DD_VERSIONアプリケーションのバージョン(例: 1.2.3, 6c44da20, 2020.02.13)を設定します。バージョン 0.38 以降で利用可能。
DD_TAGSすべてのスパン、プロファイル、ランタイムメトリクスに追加されるデフォルトタグのリスト(例: layer:api,team:intake)。バージョン 0.38 以降で利用可能。
DD_TRACE_ENABLEDtrueWeb フレームワークとライブラリインスツルメンテーションを有効にします。false の場合、アプリケーションコードはトレースを生成しません。
DD_AGENT_HOSTlocalhostデフォルトのトレーサーがトレースの送信を試みるトレースエージェントホストの宛先アドレスをオーバーライドします。
DATADOG_TRACE_AGENT_PORT8126デフォルトのトレーサーがトレースを送信する宛先ポートをオーバーライドします。
DD_TRACE_AGENT_URLトレーサーが送信するトレース Agent の URL。設定した場合、ホスト名およびポートより優先されます。datadog.yaml ファイルの apm_config.receiver_socket または DD_APM_RECEIVER_SOCKET 環境変数と組み合わせて、Unix ドメインソケットをサポートします。
DATADOG_PRIORITY_SAMPLINGtrue優先度付きサンプリングを有効にします。
DD_LOGS_INJECTIONfalseログとトレースの挿入を接続する を有効にします。

その他の参考資料