Python アプリケーションのトレース
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

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

互換性要件

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

インストールと利用開始

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

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

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

または、Python で記述されたアプリケーションのトレースを始めるには、まず Datadog Agent をインストールして構成しDocker アプリケーションのトレースまたは Kubernetes アプリケーションに関する追加ドキュメントを確認します。

次に、以下の pip を使用して Datadog Tracing ライブラリ ddtrace をインストールします。

pip install ddtrace

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

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

ddtrace-run python app.py

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

コンフィギュレーション

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

環境変数デフォルト説明
DATADOG_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 以降で利用可能。
DATADOG_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ログとトレースの挿入を接続するを有効にします。
DD_TRACE_ANALYTICS_ENABLEDfalseWeb インテグレーション用 App Analytics をグローバルに有効にします。
DD_INTEGRATION_ANALYTICS_ENABLEDfalse特定のインテグレーション用の App Analytics を有効化します。例: ``DD_BOTO_ANALYTICS_ENABLED=true` 。 |

Agent ホスト名の変更

アプリケーションレベルのトレーサーを構成し、トレースをカスタムのエージェントホスト名に送信します。Python トレーシングモジュールが自動的に検索し、環境変数の DD_AGENT_HOSTDD_TRACE_AGENT_PORT で初期化します。

ただし、コードでホスト名およびポートを設定することもできます。

import os
from ddtrace import tracer

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

その他の参考資料