Application Real-Time Monitoring Service (ARMS) のトレースエクスプローラーを使用すると、保存されたトレースデータをリアルタイムでフィルタリング、集計、分析して、レイテンシーのボトルネック、エラーパターン、サービス間の依存関係を診断できます。
一般的なトラブルシューティングのワークフロー
一般的な調査は、以下の流れで進めます。
-
トレースエクスプローラーを開き、時間範囲を設定します。
-
ステータス、所要時間、サービス、またはスパン名でフィルタリングして、結果を絞り込みます。
-
トレースリストと HTTP ステータスの分布を確認し、エラースパイクやレイテンシーの外れ値がないか調べます。
-
トレースをドリルダウンし、スパンレベルのタイミング、属性、例外を調査します。
-
最大 5,000 件のトレースにわたってスパンメトリックを集計し、システム全体のパターンを特定します。
トレースのフィルタリングと検索
-
ARMS コンソールにログインします。
-
左側メニューで、[Application Monitoring] > [Trace Explorer] を選択します。上部メニューでリージョンを選択します。
-
ページの右上隅で時間範囲を選択します。
-
次のいずれかの方法を使用してトレースをフィルタリングします。
-
[クイックフィルター]:ステータス、所要時間、アプリケーション名、スパン名、ホストアドレスなどの事前定義されたフィールドから選択します。選択した条件は検索バーに表示されます。
-
ドロップダウンフィルターパネル:検索バーをクリックしてパネルを開きます。既存の条件を変更したり、新しい条件を追加したりします。
-
クエリステートメント:検索バーにクエリを直接入力します。構文の詳細については、「Trace Explorer の使用方法」をご参照ください。
-
現在のフィルター条件をビューとして保存するには、[Aggregation Dimension] ドロップダウンリストの横にあるアイコンをクリックします。
保存したビューを読み込むには、[Saved View] をクリックし、リストからビューを選択します。
クエリされたデータをグループ化するには、集計ディメンションを選択します。
トレースリスト
フィルターが適用されると、トレースエクスプローラーに 3 つの可視化が表示されます。
-
HTTP ステータス棒グラフ:トレース全体の HTTP レスポンスコードの分布。
-
所要時間タイムシリーズ:時間経過に伴うスパンの所要時間。レイテンシーの傾向を明らかにします。
-
スパンとトレースのリスト:主要なメタデータを含む個々のスパンとトレース。
HTTP ステータスコードの色
棒グラフは、HTTP ステータスクラスによってレスポンスを色分けします。
| ステータスクラス | 色 |
|---|---|
| 2XX | 緑 |
| 3XX | 黄 |
| 4XX | オレンジ |
| 5XX | 赤 |
ステータスコードは、attributes.http.status_code または attributes.http.response.status_code から派生します。HTTP ステータスコードとスパンステータスの両方が存在する場合、HTTP ステータスコードが優先されます。
スパンステータスのインジケーター
[TraceId] 列の左側にあるカラーバーは、スパンのステータスを示します。
| カラーバー | ステータスコード | 意味 |
|---|---|---|
![]() |
statusCode=0 |
Unset |
![]() |
statusCode=1 |
OK |
![]() |
statusCode=2 |
Error |
[Status] 列では、アイコンを使用してスパンの状態を示します。
| アイコン | 状態 | 条件 |
|---|---|---|
![]() |
正常 | statusCode=0 (unset) または statusCode=1 (OK) |
![]() |
エラー | statusCode=2 |
![]() |
例外 | attributes.excep.ids に値が含まれている |
トレースリストのアクション
-
トレース ID または [Actions] 列の [Details] をクリックして、トレースの詳細とトポロジーを表示します。
-
[Actions] 列の [Logs] をクリックして、トレース相関ログを表示します。
-
アイコンをクリックして、トレース ID の下のすべてのスパンを展開します。デフォルトでは、トレースごとにルートスパンのみが表示されます。 -
右上隅の
アイコンをクリックして、リストに表示する列をカスタマイズします。 -
スパンにカーソルを合わせ、
アイコンをクリックして、その値をフィルター条件として追加します。
散布図
[Scatter plot] タブでは、各トレースが時間 (X 軸) と所要時間 (Y 軸) でプロットされ、レイテンシーの外れ値を簡単に見つけることができます。ポイントにカーソルを合わせると基本的なトレース情報が表示され、クリックするとトレースの詳細が開きます。
トレースの集計
トレース集計は、最大 5,000 件の分散トレースをクエリし、トレース ID によってスパンを取得し、結果を集計します。このプロセス全体でトレースの整合性は維持されます。これにより、個々のスパン分析では表面化できないシステム全体のパターンが明らかになります。
複数の条件を持つクエリは、計算に時間がかかる場合があります。結果が完全に読み込まれるまでお待ちください。
集計メトリック
| メトリック | 説明 |
|---|---|
| spanName | スパンの名前。 |
| serviceName | スパンに関連付けられたアプリケーション。 |
| リクエスト数 / リクエスト率 | このスパンを呼び出すリクエストの数。数と合計リクエストに対する割合の両方で示されます。計算式:リクエスト数 / 合計リクエスト数 x 100%。 |
| スパン数 / リクエスト倍率 | 各リクエストがこのスパンを呼び出す平均回数。計算式:スパン数 / リクエスト数。値が 2.0 の場合、各リクエストがこのスパンを平均して 2 回呼び出すことを意味します。 |
| 平均セルフタイム / 割合 | スパンが子スパンを除いた自身のロジックに費やした時間。計算式:合計スパン時間 - すべての子スパンの時間。非同期呼び出しの場合、セルフタイムは合計スパン時間と等しくなります。 |
| 平均所要時間 | スパンの平均所要時間。 |
| 例外数 / 例外率 | このスパンで例外が発生したリクエストの数。計算式:例外のあったリクエスト数 / 合計リクエスト数。例外数は例外の総数とは異なります。リクエスト倍率が 1 を超える場合、1 つのリクエストで複数の例外が発生する可能性があります。 |
集計例
スパン A がスパン B とスパン C を呼び出すトレースを考えてみましょう。
| spanName | serviceName | リクエスト数 / リクエスト率 | スパン数 / 倍率 | 平均セルフタイム / 割合 | 平均所要時間 | 例外数 / 例外率 |
|---|---|---|---|---|---|---|
| A | demo | 10 / 100% | 10 / 1.00 | 5.00 ms / 25% | 20 ms | 2 / 20% |
| - B | demo | 4 / 40% | 8 / 2.00 | 16.00 ms / 100% | 16 ms | 2 / 50% |
| - C | demo | 1 / 10% | 1 / 1.00 | 4.00 ms / 100% | 4 ms | 1 / 100% |
このテーブルの読み方:
-
リクエストの分布:10 件すべてのリクエストがスパン A を通過しますが、スパン B に到達するのは 4 件、スパン C に到達するのは 1 件のみです。残りのリクエストは、条件付きロジックまたは例外のためにこれらの子スパンをスキップします。
-
スパンの頻度:スパン A はリクエストごとに 1 回呼び出されます (倍率 = 1.00)。スパン B はリクエストごとに平均 2 回呼び出されます (8 スパン / 4 リクエスト = 2.00)。これは、ループまたはリトライパターンを示しています。
-
時間の分布:スパン A のセルフタイムは 5 ms (合計所要時間 20 ms の 25%) で、75% の時間は子スパンで費やされていることを意味します。スパン B とスパン C には子がないため、セルフタイムは 100% です。
-
例外の分布:スパン B では 4 件のリクエストで 2 件の例外が発生しています (例外率 50%)。各リクエストはスパン B を 2 回呼び出すため、考えられるパターンは、2 件のリクエストは完全に成功し、他の 2 件は最初の呼び出しで失敗するものの、リトライで成功するというものです。
青色のスパン名にカーソルを合わせると、推奨されるトレース ID が表示されます。トレース ID をクリックすると、その詳細が表示されます。
トレーストポロジー
すべてのリンクトポロジー タブには、集計されたトレースのアプリケーション間呼び出しトポロジーが表示されます。各ノードはアプリケーションを表し、リクエスト数、エラー数、レスポンス時間の 3 つのメトリックを表示します。
低速トレースと失敗トレースの分析
トレースエクスプローラーは、低速トレースと失敗トレースを自動的に分析し、パフォーマンス問題と最も相関性の高いディメンションを明らかにします。ホストやインターフェイスによるフィルタリングや、複数の条件を組み合わせて問題を特定できます。例: serviceName="arms-demo" AND ip="192.168.1.1"
低速トレース分析
ARMS は、最も所要時間の長い 1,000 件のトレースを選択し、パフォーマンスの低下と最も強く相関する 5 つのディメンションを特定します。
低速トレースの詳細
ARMS は、設定可能なしきい値を超える最も所要時間の長い 1,000 件のトレースと、それを下回る 1,000 件のトレースをサンプリングします。2 つのグループを比較することで、高レイテンシーと最も強く相関する 3 つの特性を明らかにします。
しきい値はパフォーマンス要件に基づいて設定します。たとえば、1 分より遅いトレースを分析するには、しきい値を 60000 ミリ秒に設定します。
失敗トレース分析
ARMS は、失敗したトレースをランダムに 1,000 件選択し、失敗と最も強く相関する 5 つのディメンションを特定します。
失敗トレースの詳細
ARMS は、失敗したトレースを正常なトレースと比較し、エラーと最も強く相関する 3 つの特性を明らかにします。
トレース詳細の表示
トレース ID をクリックして、トレース詳細ビューを開きます。このビューは 4 つのセクションで構成されています。
コンポーネントタグ
ビューの上部にあるタグは、attributes.component.name フィールドで定義された呼び出しタイプごとにスパンをグループ化します。各タグには、呼び出しタイプ名とそのスパン数が表示されます。タグをクリックすると、そのタイプのスパンの表示/非表示を切り替えることができます。
トレースタイムラインの棒グラフ
水平棒グラフは、トレース全体の視覚的な概要を提供します。
-
各バーはスパンを表します。トレースの合計所要時間の 1% を超えるスパンのみが表示されます。
-
色はアプリケーションを区別します。たとえば、青は
opentelemetry-demo-adserviceを表す場合があります。 -
バー内の黒い線分はセルフタイムを示します。これは、子スパンを除いたスパン自体の処理時間です。スパン A の所要時間が 10 ms で、その子スパン B の所要時間が 8 ms の場合、スパン A のセルフタイムは 2 ms です。
-
タイムライン軸は、トレースの時間範囲を示します。
スパンツリーとナビゲーション
スパンツリーは各スパンを 1 行で表示し、インデントによって親子関係を示します。各親スパンの前の数字は、それが含む子スパンの数を示します。
利用可能なコントロール:
-
折りたたみ/展開:
アイコンをクリックして、スパンの子を折りたたんだり展開したりします。 -
フォーカス:
アイコンをクリックして、スパンとその下流の呼び出しを分離します。 -
フォーカス解除:
アイコンをクリックして、全体のビューに戻します。 -
フィルター:検索ボックスにスパン名、アプリケーション名、または属性を入力して、ツリーをフィルタリングします。ビューには、一致するスパンと、そのエントリスパンに至るまでのすべての祖先スパンが表示されます。検索ボックスをクリアして検索アイコンをクリックすると、フィルターが解除されます。
-
ズーム:
アイコンをクリックしてズームインし、棒グラフを非表示にします。
アイコンをクリックすると、棒グラフが復元されます。
スパン詳細パネル
スパンを選択すると、右側のパネルにその詳細が表示されます。
-
追加情報:スパンの属性、リソース、詳細、イベントをタイプ別にグループ化して表示します。フィールド定義については、「トレースエクスプローラーのパラメーター」をご参照ください。
-
メトリック:スパン関連のメトリックを表示します。ARMS によって監視されている Java アプリケーションの場合、これには JVM とホストのメトリックが含まれます。オープンソースエージェントからのトレースの場合、これには RED メソッドのメトリック (レート、エラー、所要時間) が含まれます。

-
ログ:このトレースと相関するビジネスログ。アプリケーションに Simple Log Service (SLS) の Logstore が設定されている場合、クリックしてトレース ID でログをクエリできます。
-
例外:選択したスパンの例外詳細 (もしあれば)。
-
イベント設定:1 つ以上のスパン属性に対してカスタムインタラクションイベントを設定します。これらのイベントを使用して、トレースデータを関連するログ、メトリック、または外部システムにリンクします。設定手順については、「トレースのカスタムインタラクションイベントの設定」をご参照ください。
よくある質問
ARMS トレースにおける予期しない POST /ingest スパン
ARMS トレースで API 名が POST /ingest のスパンが表示される場合、考えられる原因は次のとおりです。
-
存在しない URL にリクエストが送信されました。
-
アプリケーションが、ベア Netty のようなルーティングメカニズムのない HTTP サーバーを使用しています。
-
リクエストがルーティングステージに到達する前にスロットリングされました。
-
ARMS アプリケーションの Spring プラグインが無効になっています。
これらのスパンを非表示にするには、アプリケーション設定でスパンフィルタリングルールを設定します。
カスタム開発
トレースデータは、以下の命名規則に従って Simple Log Service (SLS) に保存されます。
| パラメーター | フォーマット | 例 |
|---|---|---|
| プロジェクト名 | proj-xtrace-<encode>-<region-id> |
proj-xtrace-abc123-cn-hangzhou |
| Logstore 名 | logstore-tracing |
logstore-tracing |
データフィールドの定義については、「トレースエクスプローラーのパラメーター」をご参照ください。保存されたトレースデータでカスタム分析を構築する例については、「トレースエクスプローラーを使用してリアルタイムでトレースデータを分析する」をご参照ください。
アイコンをクリックします。




