レイテンシのスパイクやエラーの急増に対して集計が発火した場合、最初の課題は問題がどこに存在するかを見つけることです。調査のコンテキストを維持する代わりに、標準のワークフローでは何千ものトレースのフィルタリングされていないリストに放り込まれます — 問題を示す1つのトレースを見つけるために、手動でフィルターを再構築し、データを精査することを余儀なくされます。
Intelligent Exemplar (IE) その検索を排除します。クリックしたときの正確なコンテキストを保持し、異常を最もよく表すトレースをアルゴリズムによって表面化させ、失敗したスパンに直接ナビゲートします — そのため、スパイクからルートスパンまで、何時間もかけるのではなく数回のクリックで到達できます。
失敗しているスパンを特定したら、属性相関分析を使用して、なぜ失敗しているのかを解明します — 異常なトレースを正常なベースラインと統計的に比較し、問題を引き起こしている特定の属性を明らかにします。
Intelligent Exemplarの仕組み
IEは、ハイレベルなメトリクスと必要な正確なコードレベルのトレースとの間のギャップを埋めるために、3つの動作を組み合わせます:
コンテキストの保持 サポートされているエラーまたはレイテンシチャートで時間枠をクリックすると、Intelligent Exemplarはその時点のスコープ内のすべてをキャプチャします:エンティティ、正確な時間範囲、transaction.nameやerror.classなどのアクティブなフィルター、および選択されたファセット。これらはネイティブにバックエンドに渡されます。汎用的でフィルタリングされていないトレースリストに移動させられることはありません。
アルゴリズムによるトレースの優先順位付け ランダムまたは時系列順のサンプルを表示するのではなく、Intelligent Exemplarはトレースデータセット全体を評価し、異常を最もよく表す最大500のトレースの厳選されたリストを提示します。断片化されたトレースは自動的に除外されます。トレースは、スパイクウィンドウ内に発生したものに重み付けされます。単一の変数 — 単一のトランザクション名、ホスト、デプロイメントのバージョンなど — が、異常なトレースの60%以上を占める場合、推奨される開始点として自動的に提示されます。
異常なスパンのナビゲーション リストからトレースを選択すると、UIは異常なスパンに直接移動します — ルートスパンでも、全体で最も遅いスパンでもなく、その操作のベースラインの動作から最も逸脱しているスパンです。複数のダウンストリームサービスにまたがる200スパンのウォーターフォールにおいて、これにより、問題が発生した場所を特定するために必要な手動のトラバーサルが不要になります。
要件
Intelligent Exemplarを使用する前に:
- サービスでディストリビューティッド(分散)トレーシングが有効になっている必要があります。
- トレースパス内でインストゥルメントされたサービスが多いほど、ダウンストリームの依存関係マップはより完全になります。インストゥルメントされていないサービスは、因果関係のパスにギャップを生じさせます。
調査を開始する
Intelligent Exemplar は、エラーおよびレイテンシチャートの3か所で利用できます:
- APM & Services > Summary:ウェブトランザクションタイムチャートおよびエラー率チャート
- Errors Inbox:Errors Inboxホームページのエラーおよびレイテンシチャート
- Transactions:Transactionsホームページのエラーおよびレイテンシチャート
手順は3つの場所すべてで同じです:
- 調査したいスパイクに対応する、エラーまたはレイテンシチャート上のタイムウィンドウをクリックします。
- 表示されるツールチップで、Intelligent Tracesを選択します。
ランディングページを確認する
スパイクの発生した時間枠を選択すると、Intelligent Exemplarのランディングページが開き、そのサービスと時間範囲における異常な動作の全体像が表示されます。クエリの構築や手動でのフィルター設定は必要ありません — クリックしたコンテキストはすでに適用されています。
ランディングページには4つのコンポーネントがあります:
サマリバー
時間範囲、異常のタイプ(レイテンシまたはエラー)、およびそのウィンドウで特定された外れ値のトレースの数を表示します。
検出されたパターン
異常がどこで発生しているか、そして何がそれを引き起こしている可能性があるかを特定する、分類されたシグナル。1つ以上のパターンを選択して、外れ値トレースのリストを特定のシグナルに絞り込むことができます。
パターン | その意味 |
|---|---|
ダウンストリームのレイテンシ | 依存関係のp95またはp99レイテンシは、フォーカスしているエンティティのスパイクと相関しています。根本原因は、開始したサービスよりもダウンストリームのサービスに存在する可能性があります。 |
ダウンストリームのエラー | スパイクの期間中に、ダウンストリームサービスのエラー率が増加しました。異常は依存関係から伝播しています。 |
フォーカルエンティティのレイテンシ | 開始したサービス自体がレイテンシの発生源です — 問題はダウンストリームの依存関係によって引き起こされているわけではありません。 |
スループットの急増 | 注目しているエンティティまたはダウンストリームのエンティティにおけるリクエスト量の急激な増加は、レイテンシまたはエラーのスパイクと相関しています。異常は、コードやインフラストラクチャの障害ではなく、負荷に起因する可能性があります。 |
ヒント
単一のパターンが異常なトレースの60%以上を占める場合、Intelligent Exemplarは推奨される開始点としてそれを自動的に選択します。その選択を解除し、別のパターンを選択して代替の仮説を検証することができます。
外れ値トレース
選択した期間内に異常な動作を示すトレースのランク付けされたリスト。トレースは、スパイクへの寄与度によってソートされます。任意のトレースを選択して開き、異常なスパンに直接ナビゲートします。
散布図
時間ウィンドウ内の他のすべてのトレースに対する外れ値のトレースの視覚的な比較。
- X-axis:選択したウィンドウ内の時間
- Y-axis:トレース期間(レイテンシ調査用)またはエラー数
- Outlier traces All Tracesのベースラインシリーズとは明確に区別してプロットされます
散布図を使用して、外れ値のトレースが時間範囲全体にランダムに分布するのではなく、スパイクウィンドウの周囲にクラスタを形成していることを確認します。密集したクラスタは、異常が時間的に制限されており、選択されたトレースが純粋にスパイクを代表していることを確認します。
異常なスパンの検査
外れ値リストからトレースを選択すると、トレース詳細パネルが開きます。Intelligent Exemplarはルートスパンに移動させるのではなく — そのオペレーションの想定されるベースラインの動作から最も逸脱しているスパンに直接ナビゲートします。
これは、深く、複数のサービスにまたがるトレースで最も重要になります。5つのダウンストリームサービスをまたぐ200スパンのウォーターフォールでは、異常なスパンは、最初は疑っていなかった依存関係の数階層深くに埋もれている可能性があります。Intelligent Exemplarは自動的にそこへナビゲートします。
異常なスパンから、次の操作を実行できます:
- スパン属性を確認して、ベースラインから逸脱している値を確認します
- スパンを所有するエンティティに移動して、そのAPMサマリーを表示します
- 追加のコンテキストを得るために、ウォーターフォール内の周囲のスパンを表示します
- 属性相関分析を実行して、異常を引き起こしている特定の属性と値のペアを特定します — デプロイメントバージョン、ホスト、エラークラスなど
トレースの詳細とスパン属性の操作に関する完全なガイドについては、トレース詳細UIページについてを参照してください。
ダウンストリームの相関関係について
異常がダウンストリームの依存関係に起因する場合、Intelligent Exemplarはサービスの依存関係グラフ全体にわたって因果関係の伝播パスをマッピングします。
システムは、ダウンストリームのエンティティ全体で相関するレイテンシとエラーのパターンを自動的に分析し、全体的な失敗に対する各経路の寄与度を計算します。
ヒント
トレースパス全体にわたるより完全な計装により、より正確なダウンストリームの属性付けが生成されます。ダウンストリームサービスがインストゥルメントされていない場合、その寄与は相関マップに表示されません。
次のステップ
- 根本原因を特定する:属性相関分析を実行して、異常の原因となっている特定の属性と値のペア — デプロイメントのバージョン、ホスト、リージョン、エラークラスなど — を特定します。
- トレースボリュームを管理する:インシデントの発生中および発生後にトレースの取り込みコストを管理するには、ディストリビューティッド(分散)トレーシングのデータ取り込みの制御を参照してください。
- サンプリングの調整: 影響を受けるサービスのサンプリングレートを調整するには、サンプリングの構成を参照してください。