すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:Python アプリケーションのログとトレース ID の関連付け

最終更新日:Oct 22, 2025

Application Real-Time Monitoring Service (ARMS) を使用すると、Python アプリケーションのログにトレース ID を関連付けることができます。これにより、アプリケーションでエラーが発生した場合、トレース ID に関連付けられたログにアクセスして、エラーの特定とトラブルシューティングを行うことができます。

前提条件

  • Python アプリケーションが ARMS と統合されていること。 詳細については、「Python アプリケーションの監視」をご参照ください。

  • Simple Log Service を使用してログが収集されていること。 詳細については、「データ収集の概要」をご参照ください。

背景情報

ARMS でトレース ID を Python ログに関連付ける機能は、ログフレームワークのイベントトラッキングに依存しています。 現在、サポートされているのは公式の Python フレームワークである Logging のみです。

手順

  1. ARMS コンソールにログインします。 左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。

  2. 上部のナビゲーションバーでリージョンを選択し、アプリケーションをクリックします。

    説明

    [言語] カラムのアイコンは、アプリケーションのプログラミング言語を示します。

    • Java图标: Java

    • image: Go

    • image: Python

    • [-] (ハイフン): Managed Service for OpenTelemetry で監視されるアプリケーション

  3. 上部のナビゲーションバーで、[設定] > [カスタム設定] を選択します。

  4. [カスタム設定] タブの [アプリケーションログの関連付け設定] セクションで、[ログソース][Log Service SLS] に設定します。 Simple Log Service がデプロイされているリージョンを選択し、プロジェクトと Logstore をバインドします。

    image

  5. Python 用の ARMS エージェントを構成します。

    1. 環境変数 OTEL_PYTHON_LOG_CORRELATIONtrue に設定して、エージェントでビジネスログとトレース ID を関連付ける機能を有効にします。

      • OTEL_PYTHON_LOG_CORRELATION のデフォルト値は false です。

      • OTEL_PYTHON_LOG_CORRELATIONfalse に設定するか、この変数を空のままにすると、この機能は無効になります。

    2. ビジネス要件に基づいて、環境変数 OTEL_PYTHON_LOG_LEVELwarningdebuginfo、または error に設定します。 この変数は、トレース ID に関連付けるビジネスログのレベルを指定します。

    3. 環境変数 OTEL_PYTHON_LOG_FORMAT を設定します。 値の例は %(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s resource.service.name=%(otelServiceName)s trace_sampled=%(otelTraceSampled)s] - %(message)s です。 ビジネス要件に基づいて値をカスタマイズできます。

      以下に、いくつかのフィールドの定義を示します。

      • otelTraceID: トレース ID。

      • otelSpanID: 現在のログによって生成されたスパンの ID。

      • otelTraceSampled: サンプリング識別子。

      • otelServiceName: アプリケーション名。

    4. ログは、ルートロガーに対してのみトレース ID に自動的に関連付けられます。 カスタムハンドラでこれを有効にするには、フォーマッタを手動で構成します。

      formatter = logging.Formatter(os.getenv('OTEL_PYTHON_LOG_FORMAT'))
      my_handler.setFormatter(formatter)

    上記環境変数を設定すると、以下のログが返されます。

    2025-01-03_11-02-42

  6. (オプション) ログ収集を構成し、アプリケーションログをプロジェクトと Logstore にアップロードします。

    デフォルトでは、Python 用の ARMS エージェントはアプリケーションログを収集しません。