Works with:
このページでは、ビジネストランザクション要求とログを関連付ける手順について説明します。
ビジネスアプリケーションの速度低下または停止の原因を調査する場合、問題は常にアプリケーションコードにあるわけではありません。アプリケーションまたはマシンのログからの追加情報が、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 より前のバージョンはサポートされていません。
トランザクションで相関をログに記録できるようにするには、次の手順を実行します。ビジネストランザクションを選択し、ロギング形式を指定する必要があります。
- ログ相関のビジネストランザクションを選択します。 これは、関心のあるビジネストランザクションを Java エージェントに指定する方法です。
- コントローラ UI で、[Analytics ] > [ Configuration] をクリックします。次に、[Log Analytics ] > [ Logging Transaction Correlation] を選択します。
- ドロップダウンリストからアプリケーションを選択します。
- [Configure Transactions for GUID Injection] セクションまで下にスクロールします。
- 右側のリストから左側のリストにトランザクションを追加し、[Save] をクリックします。
- 次の手順に進みます。相関ログを確認するには、ロギングパターンも設定する必要があります。
- インジェクトされた情報がログにどのように表示されるかを定義します。この機能を適切に設定できるように、アプリケーション ロギング フレームワークのアペンダ名とパターンを知っておく必要があります。簡単に説明すると、パターンはロギング要求のフォーマットを行い、アペンダは出力先を処理します。これは、ここで説明するように、コントローラ UI を使用して設定できます。また、コードに直接アペンダを追加することもできます。「ソースコードでのアペンダの追加」を参照してください。
- [Analytics Configuration] ウィンドウで、次のセクションにスクロールします。Configure Patterns for Logging format.
- 相関ログを収集するアプリケーション、ティア、またはノードを選択します。
- アペンダ名を入力し、ログフレームワークを選択します。
パターンおよび要求 GUID 文字列を入力します。要求 GUID はパターン内の任意の場所に追加できます。要求 GUID は、以下と完全に一致している必要があります。
[%X{AD.requestGUID}]
CODE
たとえば、次のスクリーンショットに、標準の log4j パターンと要求 GUID を示します。
要求 GUID 文字列を含む Log4j の例の詳細:
[%d] [%-5p] [%t] [%c] [%X{AD.requestGUID}] %m%n
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 によるログの検索を有効にし、相関ログとトランザクションデータを表示するには、次の手順を実行します。
- コントローラ UI で、Analytics > Configuration > Log Analytics > Source Rule. をクリックします。
- ログソースルール設定の要求 GUID フィールドを抽出します。「ソースルールのフィールド抽出」を参照してください。
- [Manual Field Extraction] を選択した場合は、次の正規表現を使用して要求 GUID を設定できます。
AD_REQUEST_GUID\[(?<requestGUID>.*)\]\]
相関ログとトランザクションデータの表示
GUID インジェクションを設定すると、コントローラ内の複数の場所からログファイルを検索できます。相関は、この機能が設定されているアプリケーションの特定の時間範囲に、関連付けられた GUID を持つログがある場合にのみ機能します。[Search Logs By Request GUID] ボタンは、スナップショットの時間範囲にスナップショット要求 GUID のログがある場合に表示されます。
分析への APM:ビジネス トランザクション スナップショットから
- トラブルシューティングする低速なトランザクションまたはその他のトランザクションを特定します。
- [More Details ] > [ Search Logs] をクリックするか、[Actions ] > [ Search Logs By Request GUID] を使用します。
この例のログの詳細からは、このトランザクションが低速だった理由は、オーダー処理キューがいっぱいになり、オーダーが完了する前に多くの再試行が行われていたためであることが確認できます。
トランザクション分析からログ分析
任意のトランザクション分析検索から関連するトランザクションを選択し、詳細を表示できます。
- トランザクションを選択してダブルクリックするか、[Action] ツールバーで [Details] をクリックします。
- [Overview] タブには、要求 GUID でログを検索する方法が 2 つあります。
- ログを検索すると、[Log Analytics] ウィンドウに相関ログが表示されます。
ログ分析からトランザクション分析
任意のログ分析検索からログを選択し、[Event Details] を表示できます。
- ログを選択してダブルクリックするか、[Action] ツールバーで [Details] をクリックします。[Event Details] ウィンドウが表示されます。
- [Search Transactions] ボタンを使用して、トランザクション分析データで関連するビジネストランザクションを検索します。