このページでは、AppDynamics の診断アクションの概要について説明します。

診断アクションでは、以下を行います。

  • 診断セッションを開始してスナップショットを収集する
  • Java のみのスレッドダンプを取得する

パフォーマンスが遅い、またはアプリケーションでエラーが多発する場合、診断アクションを開始して根本的な原因を解明できます。

診断セッションは、ビジネストランザクションをモニタリングする正常性ルールに対してのみ開始できます。

診断セッションでは、キャプチャされたトランザクションのスナップショットを完全なコールグラフ付きで表示します。このスナップショットにより、ビジネストランザクションパフォーマンスの正常性ルール違反や遅い/停止したトランザクションイベントの診断が可能になります。診断セッションをトリガーするイベントの影響を受けたエンティティは、ビジネストランザクションでなければなりません。

スレッドダンプは、JVMプロセスの一部であるすべてのスレッドの状態の汎用スナップショットです。各スレッドの状態は、各スレッドのスタックの内容を示すスタックトレースで表示されます。スレッドダンプは、コードのデッドロックなど、JVMのパフォーマンス問題を診断するために使用されます。

診断セッションアクション

診断セッションは、常にビジネストランザクションに関連付けられています。完全なコールグラフを含むトランザクションスナップショットが表示されるので、問題の根本的な原因を掘り下げることができます。

診断セッションアクションを作成するには

  1. [Actions Configuration] ペインにアクセスします。「アクション」の「アクションの作成と変更」を参照してください。
  2. [Diagnostics] の下にある [Create Action] ペインで [Start a Diagnostic Session on the selected Business Transactions ] を選択し、[OK] をクリックします。
  3. アクション名、診断セッションの持続時間(分)、毎分取得するスナップショットの数を入力したら、イベントによって影響を受けたビジネストランザクションのために診断セッションを開始するのか、あるいは特定のビジネストランザクション用に開始するのかを選択します。
    特定のビジネストランザクションを選択する場合、それを利用可能リストから選択リストに移動することにより、診断セッションをトリガーするビジネストランザクションを指定します。アクションをトリガーしていないビジネストランザクションも指定できます。
  4. OK をクリックします。

診断アクションの結果

実行した診断アクションの結果は、アクションをトリガーしたイベントの一覧に表示されます。診断セッションの詳細や、アクションによって開始されたスレッドダンプを取得するには

  1. [Events] リストで、結果を確認するアクションをトリガーしたイベントの行を見つけます。 
  2. [Actions] 列で、次を行います。
    • [] をクリックしてスレッドダンプアクションの詳細を表示します。
    • [] をクリックして診断セッションアクションの詳細を表示します。

ディスク上で、スレッドダンプはコントローラホームの app_agent_operation_logs ディレクトリに保存されています。ファイル名は app_agent_operation の表の ID に基づいています。 

AD Thread で識別されるスレッドは、AppDynamics アプリケーションのエージェントコードにより開始されたスレッドです。  

スレッドダンプアクション

Java エージェントには、指定したサンプル数(最大 50)のスレッドダンプを取得することを指示できます。各サンプルの持続時間(最大 500 ミリ秒)も指定できます。スレッドダンプは、エージェントにより監視されているノードで実行されます。

スレッドダンプを要求するには、Agent Advanced Operation 権限がユーザに必要です。

スレッドダンプにおけるエージェントの制限

一度に 1 つのスレッドダンプ操作が実行されます。並行して実行されることはありません。処理中に追加のスレッドダンプ要求を受信した場合、エージェントあたり最大 5 つまでキューに登録されます。

エージェントあたり5つのスレッドダンプという制限を超えた場合、制限が原因でスキップされたスレッドダンプ処理のあるイベントと、このイベントにリンクしたポリシーに対するアクションダイアログが、コンソールに表示されます。

スレッドダンプアクションを作成するには

  1. [Create Action] ペインにアクセスします。 
  2. [Diagnostics] の下にある [Create Action] ペインで [ Take a thread dump] を選択し、[OK] をクリックします。
  3. アクションの名前、取得するサンプルの数、スレッドダンプの間隔(ミリ秒単位)を入力します。スレッドダンプアクション開始前に承認を要求する場合、[Require approval before executing this Action] チェックボックスをオンにし、このアクションを承認する権限のある個人またはグループのメールアドレスを入力します。詳しくは、「承認が必要なアクション」を参照してください。
  4. OK をクリックします。

バックエンドの検出イベントによってスレッドダンプアクションがトリガーされる時にバックエンドが迅速に解決されない場合、ポリシーはスレッドダンプを開始しません。