ビジネストランザクションおよびログ相関

このページでは、ビジネストランザクション要求とログを関連付ける手順について説明します。

ビジネスアプリケーションの速度低下または停止の原因を調査する場合、問題は常にアプリケーションコードにあるわけではありません。アプリケーションまたはマシンのログからの追加情報が、DevOps チームの調査に役立つことがあります。ビジネストランザクションに影響を与えているサポートデータを確認する方法の 1 つは、そのトランザクションのログを分析することです。

ビジネストランザクションの GUID インジェクションを設定することにより、ログを特定のビジネストランザクション リクエストに関連付けることができます。これは、低速なトランザクションを確認し、コールグラフで根本原因を突き止める十分な情報が得られない場合に役立ちます。この機能を使用すると、失敗したトランザクションまたは低速なトランザクションに関連する完全なコンテキストを把握できます。

ビジネストランザクションの特定のインスタンスを関連ログに関連付けるには、Java エージェントを介して関連ログにビジネストランザクションの同じ requestGUID をインジェクトします。これにより、特定のビジネストランザクションの複数のティアおよびノードから関連ログをすばやく見つけることができます。

重要: この相関性の可視化には、トランザクション分析とログ分析両方のライセンスが必要になります。「ライセンスの付与および制限事項」を参照してください。

GUID インジェクションの設定

この機能は、次の Java ロギングフレームワークをサポートしています。

  • Apache log4j バージョン 1.2.12 ~ 1.2.17 および 2.6.2 ~ 2.17。
  • logback バージョン 1.0.0 ~ 1.2.10。1.0.0 より前のバージョンはサポートされていません。

トランザクションで相関をログに記録できるようにするには、次の手順を実行します。ビジネストランザクションを選択し、ロギング形式を指定する必要があります。

  1. ログ相関のビジネストランザクションを選択します。 これは、関心のあるビジネストランザクションを Java エージェントに指定する方法です。
    1. コントローラ UI で、[Analytics] > [Configuration] の順にクリックします。次に [Log Analytics] > [Logging Transaction Correlation] の順に選択します。
    2. ドロップダウンリストからアプリケーションを選択します。
    3. [Configure Transactions for GUID Injection] セクションまで下にスクロールします。Configuration
    4. 右側のリストから左側のリストにトランザクションを追加し、[Save] をクリックします。
    5. 次の手順に進みます。相関ログを確認するには、ロギングパターンも設定する必要があります。
  2. インジェクトされた情報がログにどのように表示されるかを定義します。この機能を適切に設定できるように、アプリケーション ロギング フレームワークのアペンダ名とパターンを知っておく必要があります。簡単に説明すると、パターンはロギング要求のフォーマットを行い、アペンダは出力先を処理します。これは、ここで説明するように、コントローラ UI を使用して設定できます。また、コードに直接アペンダを追加することもできます。「ソースコードでのアペンダの追加」を参照してください。
    1. [Analytics Configuration] ウィンドウで、[Configure Patterns for Logging format.] セクションにスクロールします。
    2. 相関ログを収集するアプリケーション、ティア、またはノードを選択します。
    3. アペンダ名を入力し、ログフレームワークを選択します。
    4. パターンおよび要求 GUID 文字列を入力します。要求 GUID はパターン内の任意の場所に追加できます。たとえば、次のスクリーンショットに、標準の log4j パターンと要求 GUID を示します。
      [%X{AD.requestGUID}]
      ログアペンダの追加要求 GUID 文字列を含む Log4j の例の詳細:
      [%d]  [%-5p]  [%t]  [%c]  [%X{AD.requestGUID}]  %m%n
  3. 影響を受けるアプリケーションを再起動し、ロガーが新しいロギング設定を取得できるようにします。

add_codeソースコードでのアペンダの追加

アプリケーションのソースコードにアクセスできる場合は、アペンダを log4j.properties ファイルに直接追加することもできます。要求 GUID を BOLD で表示したソースコードの例を次に示します。


                     log4j.appender.order-file-appender=org.apache.log4j.FileAppender 
                     log4j.appender.order-file-appender.File=logs/telecom-order.log 
                     log4j.appender.order-file-appender.layout=org.apache.log4j.PatternLayout 
                     log4j.appender.order-file-appender.layout.ConversionPattern=[%d]  [%-5p]  [%t]  [%c][%X{AD.requestGUID}]%m%n 
                     log4j.logger.com.appdynamics.order=DEBUG, order-file-appender 
                     log4j.additivity.com.appdynamics.order=false
                    

ソースルール設定からの要求 GUID の抽出

要求 GUID によるログの検索を有効にし、相関ログとトランザクションデータを表示するには、次の手順を実行します。

  1. コントローラ UI で、[Analytics] > [Configuration] > [Log Analytics] > [Source Rule.] の順にクリックします。
  2. ログソースルール設定の要求 GUID フィールドを抽出します。「ソースルールのフィールド抽出」を参照してください。
    1. [Manual Field Extraction] を選択した場合は、次の正規表現を使用して要求 GUID を設定できます。AD_REQUEST_GUID\[(?<requestGUID>.*)\]\]

相関ログとトランザクションデータの表示

GUID インジェクションを設定すると、コントローラ内の複数の場所からログファイルを検索できます。相関は、この機能が設定されているアプリケーションの特定の時間範囲に、関連付けられた GUID を持つログがある場合にのみ機能します。[Search Logs By Request GUID] ボタンは、スナップショットの時間範囲にスナップショット要求 GUID のログがある場合に表示されます。

分析への APM:ビジネス トランザクション スナップショットから

  1. トラブルシューティングする低速なトランザクションまたはその他のトランザクションを特定します。 遅いトランザクション
  2. [More Details] > [Search Logs] の順にクリックするか、[Actions] > [Search Logs By Request GUID] を使用します。
    この例のログの詳細からは、このトランザクションが低速だった理由は、オーダー処理キューがいっぱいになり、オーダーが完了する前に多くの再試行が行われていたためであることが確認できます。 ログを検索ログ分析にアクセスログの詳細

トランザクション分析からログ分析

任意のトランザクション分析検索から関連するトランザクションを選択し、詳細を表示できます。

  1. トランザクションを選択してダブルクリックするか、[Action] ツールバーで [Details] をクリックします。トランザクションの詳細
  2. [Overview] タブには、要求 GUID でログを検索する方法が 2 つあります。ログを検索
  3. ログを検索すると、[Log Analytics] ウィンドウに相関ログが表示されます。相関ログ

ログ分析からトランザクション分析

任意のログ分析検索からログを選択し、[Event Details] を表示できます。

  1. ログを選択してダブルクリックするか、[Action] ツールバーで [Details] をクリックします。[Event Details] ウィンドウが表示されます。
  2. [Search Transactions] ボタンを使用して、トランザクション分析データで関連するビジネストランザクションを検索します。