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

Managed Service for OpenTelemetry:Simple Log Service でアプリケーションログをトレース ID に関連付ける

最終更新日:Jan 13, 2025

Simple Log Service は、ログをトレース ID に関連付けることができるイベント設定機能を提供します。アプリケーションでエラーが発生した場合、アプリケーションログに書き込まれたトレース ID を使用してトレースを特定し、できるだけ早くエラーをトラブルシューティングできます。このトピックでは、Simple Log Service でアプリケーションログをトレース ID に関連付ける方法について説明します。

前提条件

  • アプリケーションは Managed Service for OpenTelemetry に接続されています。詳細については、統合ガイド を参照してください。

  • アプリケーションのログは Simple Log Service にインポートされ、トレース ID またはスパン ID がログに書き込まれます。詳細については、はじめに および Logger MDC 自動インストルメンテーション を参照してください。

手順 1: トレース ID を抽出する

  • トレース ID がログの別のフィールドに格納されている場合は、この手順をスキップします。

  • トレース ID が content フィールドなどのログのフィールドに含まれている場合は、content フィールドからトレース ID を抽出し、別のフィールドにトレース ID を表示する必要があります。

  1. ログオンSimple Log Service コンソールします。

  2. アプリケーションログが格納されているプロジェクトとログストアを選択します。

  3. Logtail プロセッサを使用して、正規表現モードでログからトレース ID を抽出し、別のフィールドにトレース ID を表示します。

    1. 左側のログストアパネルで、データ収集 > Logtail 設定 を選択します。Logtail 設定ページで、管理する Logtail 設定を見つけ、[アクション] 列の [Logtail 設定の管理] をクリックします。

      image

    2. [編集] をクリックして編集を開始します。[設定の詳細] タブの [プロセッサ設定] セクションで、[プロセッサの追加] をクリックし、[プロセッサの種類] ドロップダウンリストから [フィールドの抽出 (正規表現モード)] を選択します。

      この例では、トレース ID またはスパン ID はログの content フィールドに含まれています。次のサンプルコードは、ログの content フィールドを示しています。

      2024-05-06 12:12:49.685 [http-nio-9190-exec-3] DEBUG io.lettuce.core.protocol.DefaultEndpoint - traceId:ea1a00002d17150191696858089d0007 - [channel=0x5d069239, /10.0.0.45:49614 -> redis/192.168.216.80:6379, epid=0x1] write() done

      [基本設定] セクションで、[元のフィールド] パラメーターを content に設定し、[正規表現] パラメーターを traceId:([a-zA-Z0-9]+) に設定し、トレース ID またはスパン ID を [新しいフィールド名] フィールドに追加します。詳細については、正規表現モードでの解析 を参照してください。

      image.png設定が完了すると、次の図に示すように、トレース ID がログの別のフィールドに表示されます。

      image

手順 2: イベントを設定する

  1. ログのトレース ID またはスパン ID をクリックし、[設定に移動] をクリックします。

  2. [高度なイベント設定] ダイアログボックスで、traceId または spanId フィールドのイベントを追加し、[OK] をクリックします。次のセクションでは、イベントのパラメーターについて説明します。

    image

    • 設定名: カスタム名を入力できます。例: トレース分析の開始

    • イベントアクション: カスタム HTTP URL の作成を選択します。

    • プロトコル: [カスタム] を選択し、入力ボックスに https と入力します。

    • URL を入力:

      • トレース ID を使用してトレースをフィルタリングする場合は、trace.console.aliyun.com/#/${regionId}/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" の形式で URL を指定します。${regionId} は、アプリケーションが Managed Service for OpenTelemetry に接続されているリージョンの ID に置き換える必要があります。

        たとえば、アプリケーションが中国 (杭州) リージョンの Managed Service for OpenTelemetry に接続されている場合は、${regionId}cn-hangzhou に置き換えます。この場合、完全な URL は trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" です。

      • スパン ID を使用してトレースをフィルタリングする場合は、スパン ID を抽出して別のフィールドに表示し、URL の ${traceId}${spanId} に置き換える必要があります。トレース ID とスパン ID の両方を使用してトレースをフィルタリングする場合は、次の URL を指定します: trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" AND spanId="${spanId}"

      • 属性とリソース情報を含むカスタム属性を使用してトレースをフィルタリングする場合は、trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=${トレースのカスタム属性の名前}="${ログのフィールドの名前}" の形式で URL を指定します。

        たとえば、名前空間のトレースをフィルタリングする場合、ログには namespace フィールドが含まれており、k8s.namespace.name 属性がトレースに追加されます。この場合、完全な URL は trace.console.aliyun.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=resources.k8s.namespace.name="${namespace}" です。

  3. イベントを設定した後、ログのトレース ID またはスパン ID をもう一度クリックし、[トレース分析の開始] をクリックして、Managed Service for OpenTelemetry の [トレースエクスプローラー] ページに移動します。

    image

    [トレースエクスプローラー] ページで、トレース ID に基づいてトレースをクエリできます。詳細については、トレースエクスプローラー を参照してください。

    image