Application Real-Time Monitoring Service (ARMS) は、保存されたフルトレースデータを分析するためのトレースエクスプローラー機能を提供します。トレースエクスプローラーを使用すると、保存されたフルトレースデータに基づいて、リアルタイム分析のためのフィルター条件と集計ディメンションを組み合わせることができます。これは、さまざまなシナリオでのカスタム診断要件を満たすことができます。
前提条件
アプリケーション監視は、新しい請求モードを有効にしているユーザー向けに、新しいアプリケーション詳細ページを提供します。詳細については、請求(新規) を参照してください。
新しい請求モードを有効にしていない場合は、アプリケーション一覧ページで新バージョンに切り替えるをクリックして、新しいアプリケーション詳細ページを表示できます。
アプリケーションに ARMS エージェントがインストールされています。詳細については、アプリケーション監視の概要 を参照してください。
手順
ARMS console にログインします。左側のナビゲーションペインで、 を選択します。
アプリケーション一覧ページで、上部のナビゲーションバーでリージョンを選択し、管理するアプリケーションの名前をクリックします。
説明言語列に表示されるアイコンは、アプリケーションが記述されている言語を示します。
:Java アプリケーション
:Go アプリケーション
:Python アプリケーション
ハイフン(-):Managed Service for OpenTelemetry で監視されているアプリケーション。
上部のナビゲーションバーで、トレースエクスプローラーをクリックします。
トレースエクスプローラーページの右上隅で、クエリする時間範囲を選択します。
フィルター条件を指定します。
クイックフィルターセクションで、ステータス、期間、アプリケーション名、スパン名、またはホストアドレスでトレースをクエリします。
指定したフィルター条件は、検索ボックスに表示されます。
上部の検索ボックスをクリックします。ドロップダウンダイアログボックスで、既存のフィルター条件を設定するか、カスタムフィルター条件を追加します。
検索ボックスにクエリステートメントを入力します。構文の詳細については、トレースエクスプローラーの使用方法 を参照してください。
説明検索ボックスの横にある アイコンをクリックして、現在のフィルター条件を保存できます。
保存済みビューをクリックして保存済みのフィルター条件を表示し、フィルター条件をクリックして対応するトレースデータを表示できます。
クエリされたデータを特定のディメンションに基づいて集計できます。
トレース一覧
フィルター条件を指定すると、トレースエクスプローラータブにトレースデータが表示されます。トレースデータには、棒グラフの呼び出し数と HTTP エラー数、時系列曲線の呼び出し期間、およびトレース一覧が含まれます。
トレース一覧では、次の操作を実行できます。
呼び出すトレースの ID をクリックするか、アクション列の詳細をクリックして、トレースの詳細とそのトポロジービューを表示します。詳細については、失敗したトレースと低速なトレースの分析セクションを参照してください。
アクション列のログをクリックして、トレースのログを表示します。詳細については、ログ分析機能の使用 を参照してください。
右上隅の アイコンをクリックして、リストのフィールドを追加または非表示にします。
トレースにポインターを移動し、 アイコンをクリックして、現在の parameter 値をフィルター条件として追加します。
散布図
散布図タブでは、時点が X 軸に沿って分布し、期間が Y 軸に沿って分布します。ポイントにポインターを移動してトレースの基本情報を表示し、ポイントをクリックしてトレースの詳細を表示できます。詳細については、トレースの詳細セクションを参照してください。
トレース集計の詳細
トレースエクスプローラーでは、さまざまなディメンションに基づいてクエリされたスパンを分析できます。ただし、多数のスパンで構成されるトレースを分析する必要がある場合があります。トレース集計機能を使用すると、指定された条件を使用して最大 5,000 の分散トレースをクエリし、トレース ID に基づいて対応するスパンをクエリできます。次に、クエリされたスパンを集計して結果を取得できます。このプロセスでは、集計されたトレースの整合性が保証されます。
トレース集計機能を使用する場合は、指定された条件に基づいてトレースデータに対して集計クエリが実行されることに注意してください。複数のクエリ条件を指定すると、計算がリアルタイムで完了しない場合があります。しばらくお待ちください。
パラメーター | 説明 |
spanName | スパンの名前。 |
serviceName | スパンに対応するアプリケーションの名前。 |
リクエスト数/リクエストの割合 | リクエスト比率は、現在のスパンを呼び出すリクエストの総リクエスト数に対する比率を示します。 たとえば、10% は、10% のリクエストが現在のスパンを呼び出すことを示します。 計算式:リクエスト比率 = 現在のスパンを呼び出すリクエスト数/総リクエスト数 × 100% |
スパン/リクエスト倍数 | リクエスト倍数は、各リクエストによって現在のスパンが呼び出される平均回数を示します。 たとえば、1.5 は、現在のスパンが各リクエストによって 1.5 回呼び出されることを示します。 計算式:リクエスト倍数 = スパン数/リクエスト数 |
平均自己消費/割合 | スパンの平均期間には、子スパンの期間は含まれません。 たとえば、スパン A に 10 ミリ秒かかり、その子スパン(スパン B)に 8 ミリ秒かかる場合、スパン A の平均期間は 2 ミリ秒です。 計算式:スパンの平均期間 = スパンの期間 - すべての子スパンの期間 重要 非同期呼び出しの場合、スパンの平均期間には子スパンの期間が含まれます。 |
平均期間 | スパンの平均期間。 |
例外の数/例外の割合 | 例外比率は、例外のあるリクエストの総リクエスト数に対する比率を示します。 たとえば、3% は、リクエストの 3% で例外が発生することを示します。 計算式:例外のあるリクエスト数/総リクエスト数 重要 例外のあるリクエストの数は、例外の数と同じではありません。リクエスト倍数が 1 より大きい場合、リクエストに複数の例外が含まれる場合があります。 |
例:スパン A はスパン B とスパン C を呼び出します。次の表にパラメーターを示します。
spanName | serviceName | リクエスト数/リクエストの割合 | スパン/リクエスト倍数 | 平均自己消費/割合 | 平均期間 | 例外の数/例外の割合 | |
A | - | demo | 10/100.00% | 10/1.00 | 5.00ms/25.00% | 20ms | 2/20.00% |
- | B | demo | 4/40.00% | 8/2.00 | 16.00ms/100.00% | 16ms | 2/50.00% |
- | C | demo | 1/10.00% | 1/1.00 | 4.00ms/100.00% | 4ms | 1/100.00% |
リクエスト数/リクエストの割合パラメーターのスパン A は、リクエストの総数が 10 で、リクエスト比率が 100% であることを示します。リクエスト数/リクエストの割合パラメーターのスパン B は、スパン B を呼び出すリクエストが 4 つだけであることを示します。同様に、スパン C を呼び出すリクエストは 1 つだけです。スパン B のリクエスト比率は 40% で、スパン C のリクエスト比率は 10% です。他のリクエストは、論理判断または例外のためにスパン B とスパン C を呼び出しません。これは、リクエストの分布を反映しています。
スパン/リクエスト倍数パラメーターのスパン A は 10/1.00 です。これは、スパン A が各リクエストによって 1 回だけ呼び出されることを示します。ただし、スパン B の場合、8 つのスパンが 4 つのリクエストによって呼び出されます。したがって、スパン B は各リクエストによって 2 回呼び出されます。これは、各リクエストにおけるスパンの分布を反映しています。
平均自己消費/割合パラメーターのスパン A は 5.00 ms/25.00% です。これは、スパン A の平均期間(スパン B とスパン C を除く)が 5 ミリ秒であることを示します。スパン A の平均期間は、全体の平均期間の 25% にすぎません。ただし、スパン B とスパン C の平均期間は、子スパンがないため、全体の平均期間と同じです。これは、平均期間の分布を反映しています。
例外の数/例外の割合パラメーターのスパン A は 2/20.00% です。これは、スパン A に 2 つの例外があり、リクエストの総数の 20% を占めていることを示します。例外の数/例外の割合パラメーターのスパン B は 2/50.00% です。各リクエストがスパン B を 2 回呼び出すとすると、リクエストの総数は 4 で、例外比率は 50% であるため、2 つのリクエストに例外があります。したがって、スパン B の例外の分布は次のようになります。合計 4 つのリクエストのうち、2 つのリクエストは成功です。残りの 2 つのリクエストのうち、各リクエストの最初の呼び出しで例外が発生し、2 番目の呼び出しは成功です。
特定のトレースの詳細を表示するには、青いスパン名にポインターを移動します。推奨される traceId をクリックして詳細を表示できます。
トレーストポロジー
フルリンクトポロジータブには、集計されたトレースのアプリケーション間トポロジーが表示されます。次の図は、2 つのアプリケーションに呼び出し関係があることを示しています。各アプリケーションについて、リクエスト数、エラー数、および応答時間が表示されます。
失敗したトレースと低速なトレースの分析
失敗したトレースと低速なトレースの分析は、複数の失敗したトレースと低速なトレースの共通ディメンションを分析するのに役立ちます。トレースは 1 つのホストに集中しているか、1 つのインターフェースに属している可能性があります。ホストまたはインターフェースでトレースをクエリするか、複数のフィルター条件を組み合わせてトレースをクエリし、問題を特定できます。例:serviceName="arms-demo" AND ip="192.168.1.1"
。失敗したトレースと低速なトレースの分析は、低速なインターフェースを整理し、システムの方向性のある最適化を実行するのにも役立ちます。
低速なトレースの分析
ARMS は、期間が最も長い 1,000 のトレースを分析し、低速なトレースに最も関連する 5 つのディメンションを表示します。
低速なトレースの詳細
ARMS は、期間がしきい値を超えるトレースから期間が最も長い 1,000 のトレースを選択し、期間がしきい値未満の 1,000 のトレースをサンプリングし、これらのトレースを比較し、低速な呼び出しに最も関連する 3 つの特性を発見します。
ビジネス要件に基づいてしきい値を設定できます。1 分以上かかるトレースの特性を発見したい場合は、しきい値を 60000 ミリ秒に設定できます。
失敗したトレースの分析
ARMS は、1,000 の失敗したトレースをランダムに選択して分析し、トレースに最も関連する 5 つのディメンションを表示します。
失敗したトレースの詳細
ARMS は、失敗したトレースと通常のトレースを比較し、失敗した呼び出しに最も関連する 3 つの特性を発見します。
トレースの詳細
コンポーネントタグ(前の図の番号 1 でマークされたセクション)
タグには、呼び出しタイプとスパンの数が表示されます。
呼び出しタイプは、attributes.component.name フィールドによって定義されます。
タグをクリックして、呼び出しタイプに関連するスパンを非表示または表示します。
トレースの横棒グラフ(前の図の番号 2 でマークされたセクション)
棒グラフは、トレース全体とスパンの分布を示しています。
各棒はスパンを表します。期間が合計期間の 1% を超えるスパンのみが表示されます。
異なる色は異なるアプリケーションを表します。前の図に示すように、青色は opentelemetry-demo-adservice アプリケーションを表します。
チャートの黒い線の長さは、スパンの自己時間を表します。これは、スパンの合計時間から子スパンで費やされた時間を引いたものです。スパン A がスパン B を呼び出すとします。スパン A に 10 ミリ秒かかり、スパン B に 8 ミリ秒かかります。この場合、スパン A には 2 ミリ秒かかります。
タイムラインは、トレースの時間範囲を表します。
トレースのフォーカスとフィルタリング(前の図の番号 3 でマークされたセクション)
このセクションの各行はスパンを表し、親スパンと子スパンの階層関係を示します。各親スパンの前に数字が付いています。これは、親スパンが所有する子スパンの数を示します。このセクションでは、次の操作を実行できます。
折りたたみ:アイコンをクリックして、スパンを折りたたむか展開します。
フォーカス:スパンを選択し、アイコンをクリックします。システムには、スパンのデータとダウンストリームデータのみが表示されます。
フォーカスの解除:アイコンをクリックして、スパンのフォーカスを解除します。
フィルター:検索ボックスにスパンの情報(スパン名、アプリケーション名、属性など)を入力して、スパンからエントリースパンまでのトレースデータを表示します。フィルタリングをキャンセルするには、検索ボックスから入力情報を削除し、検索アイコンをクリックします。
拡大/縮小:アイコンをクリックしてトレースを拡大し、棒グラフを非表示にします。アイコンをクリックして棒グラフを表示します。
スパンの詳細(前の図の番号 4 でマークされたセクション)
スパンの詳細セクションには、現在のスパンの詳細、および関連するメトリックデータ、ログ、および例外情報が表示されます。カスタムインタラクションイベントを管理し、インタラクションイベントのトリガーを設定することもできます。
追加情報:スパンの属性、リソース、詳細、およびイベントが表示されます。追加情報はタイプ別にグループ化されます。スパンの詳細のフィールドについては、トレースエクスプローラーのパラメーター を参照してください。
メトリック:スパンに関連するメトリックが表示されます。ARMS で監視されている Java アプリケーションのトレースの場合、JVM とホストに関するメトリックが表示されます。オープンソースエージェントによって報告されたトレースの場合、レート、エラー、期間を含む RED メソッドによって定義されたメトリックが表示されます。
ログ:トレースに関連するビジネスログが表示されます。アプリケーションの Simple Log Service (SLS) Logstore を設定している場合は、Logstore に移動して、トレース ID に基づいてビジネスログをクエリできます。
例外:スパンに関連する例外情報(存在する場合)が表示されます。
イベント設定:トレースの 1 つ以上の属性のインタラクションイベントを設定できます。これにより、トレースに関する詳細をクエリしたり、トレースに関連するログとメトリックを表示したりできます。カスタムインタラクションイベントの設定方法については、トレースのカスタムインタラクションイベントの設定 を参照してください。
カスタム開発
トレースデータは SLS に保存されます。プロジェクト名は proj-xtrace-<encode>-<region-id> です。Logstore 名は logstore-tracing です。region-id パラメーターは、トレースエクスプローラーを使用するリージョンです(例:cn-hangzhou)。データ形式については、トレースエクスプローラーのパラメーター を参照してください。保存されたフルトレースデータのカスタム開発を実行できます。フィルター条件または集計ディメンションに基づいて、保存されたフルトレースデータを分析できます。これにより、さまざまなシナリオでのカスタム診断の要件を満たすことができます。詳細については、トレースエクスプローラーを使用してトレースデータをリアルタイムで分析する を参照してください。