Trace Analyzer を使用して問題のトラブルシューティングを実行し、根本原因を特定する

Alexが問題の原因や蔓延状況を特定するために、Trace Analyzerを使用して、広範な傾向から単一のトレースにいたるまで、APMのデータを調査します。

Buttercup Games のサイト信頼性エンジニアである Alex は、精算中にエラーが発生した顧客のレポートを受け取りました。潜在的なインシデントを未然に防ぐために、Alex は Trace Analyzer を使用して、精算エラーがどの程度蔓延しているかを迅速に判断します。

精算のエラーがどの程度蔓延しているかを判断するため、Alexは以下の手順を踏みます:

  1. Alex が顧客のトレースを見てエラーを確認する

  2. アレックスが特定のタグでトレースをグループ化する

  3. Alexが特定のタグでTrace Analyzerにフィルターを適用する

  4. Alexが正常なトレースとエラーのあるトレースを比較する

Alex が顧客のトレースを見てエラーを確認する

カスタマーサポートは、Alex がトレースを取得してトラブルシューティングを開始するために使用するトレース ID を共有しました。Alex は、精算サービスの http リクエストが 500 エラーを返していることに気づきます。Alex は、このエラーが精算フローでどの程度蔓延しているかを迅速に把握したいと考えています。そのため、Alex は 500 を返すリクエストの http.url をメモしてさらに調査を行います。

アレックスが特定のタグでトレースをグループ化する

http.url はインデックス化されていないスパンであるため、Alex は Tag Spotlight を使用して http.url ごとにリクエストとエラーの内訳を表示することができません。そこで Alex は Trace Analyzer に移動し、[Group traces by] メニューで [http.url] を選択して、問題のあるトレースからメモした特定の http.url 値のエラーの蔓延度をすばやく把握します。Alex は、/checkout/{cardId} リクエストのトレースの 10% 以上にエラーがあることに気づきます。

このスクリーンショットは、Trace Analyzerの「トレースのグループ化基準」オプションと、それを使用してグループ化されたメトリクスを示しています。

Alexが特定のタグでTrace Analyzerにフィルターを適用する

Alexは、Trace Analyzerのフィルターに /checkout/{cardId} のhttp urlを追加し、この特定のエンドポイントのトレースを確認します。

このスクリーンショットは、[メトリクスのグループ化]タブからTrace Analyzerのフィルターに値を追加するオプションを示しています。

Alexが正常なトレースとエラーのあるトレースを比較する

これでAlexは、/checkout/{cardId} のhttp urlの正常なトレースと、同じエンドポイントのエラーを持つトレースを確認し、比較することができます。

このスクリーンショットは、Trace Analyzerのフィルターのフィルターを適用したビューです。

概要

完全忠実トレースによって提供される高解像度のデータを使用して、Alex は未知の問題の蔓延度を迅速に判断することができました。Trace Analyzer のグループ化とフィルタリングの機能を使用して、正常なトレースと問題のあるトレースを素早く分離し、エンジニアに提示して問題を隔離できるようにしました。

さらに詳しく