デフォルトでは、AppDynamicsは定期的に取得したトランザクションスナップショットとトランザクションの実行異常があった場合にトランザクションスナップショットを保持します。スナップショットのコールグラフには完全なもの、一部のもの、あるいはまったくない場合があります。「トランザクションスナップショット」を参照してください。
診断セッションでは、AppDynamicsの設定より高い頻度でビジネストランザクションスナップショットを取得する、タイムドセッションを開始できます。このセッションでは、AppDynamicsによりトランザクションの完全なコールグラフが取得されます。
診断セッションは、正常性ルールの違反、あるいは異常な量の遅延またはエラートランザクションにより自動的にトリガーされる場合もあります。デフォルトでは、AppDynamicsはリクエストの10%以上が遅い場合に診断セッションを開始します。
診断セッションが手動でトリガーされた場合、診断セッションにより選択したビジネストランザクションが通過するすべてのノードでスナップショットが収集されます。診断セッションが自動的に開始されると、診断セッションはトリガーするノード上でスナップショットを収集します。
診断セッションを手動でトリガーする
診断セッションを手動で開始するには、Start Diagnostic Sessions 権限が必要です。
ビジネストランザクションリストから診断セッションを開始できます。リストで [More Actions ] メニューからトランザクションを選択し、セッションを開始します。
セッションで収集されたトランザクション スナップショットを表示するには、ビジネス トランザクション ダッシュボードで [Transaction Snapshots > Diagnostic Sessions] を選択します。
遅延およびエラートランザクションの自動診断セッションの構成
自動診断セッションをトリガーする設定は、トランザクションのしきい値構成ページより行います。診断セッションを開始するしきい値の設定と、セッション開始後のスナップショット収集頻度および期間を構成できます。
パフォーマンス上の理由から、トラブルシューティングのための最大限の情報を得るため、診断セッションの期間と頻度は最小限の時間に制限する必要があります。進行中のパフォーマンス上の問題が発生している場合は、継続的な収集を避けるため、セッション間の待機時間を構成し、必要に応じて時間を増やしてください。
非同期アクティビティにおける診断セッションの使用
診断セッションは、通常ビジネストランザクションの全体的なパフォーマンスに基づきトリガーされます。ただし、ビジネストランザクションの全体的なパフォーマンスは、非同期アクティビティの実行時間を反映していない場合があります。元のトランザクションは通常の範囲内で実行されるケースも考えられますが、非同期アクティビティはより長く時間がかかります。
このような状況で診断セッションを開始するには、非同期アクティビティのパフォーマンスメトリック(応答時間など)に基づき正常性ルールを使用します。その後、正常性ルールに違反したときに診断セッションを開始するポリシーを作成します。これを行う一般的な手順は次のとおりです。
- 平均応答時間などの非同期メトリックに基づき、カスタム正常性ルールの作成を行います。スレッドタスクのメトリックは、メトリックブラウザ内の非同期アクティビティ トランザクションの [Thread Tasks ] ノードに表示されます。各スレッドタスクには、個々のノード(通常は単純なクラス名)があります。正常性ルールのタイプには必ず [Custom] を選択してください。
- 平均応答時間など、対象とする非同期メトリックのベースラインに基づきポリシーの作成を行います。
- 影響を受けたビジネストランザクションが診断セッションを開始するようポリシーを構成します。詳細については、「ビジネストランザクション」を参照してください。