分散トレース解析
Traceは可観測性データの三本柱の一つです。リクエストの完全な実行を追跡し、spans(各サービス内の実行間隔)とそれらの呼び出し関係で構成されます。Traceは、分散システムにおけるリクエストのパフォーマンスと異常を分析するために不可欠です。
Tracesページでtraceを分析できます。関心のあるtrace(例:長時間実行されるもの)を特定し、特定のtraceを可視化してそのspanを詳しく調べます。
以下に示すように、Tracesページは4つの領域で構成されています:
- データ選択領域(上部):traceデータソース(Datasource、Database、Table)、時間フィールド、時間範囲を選択します。
- フィルタ領域(左側):Service、Operation、Tags、Durationによってtraceをフィルタリングします。
- Trace分散領域(右上):一致するtraceの散布図 — X軸はtrace開始時間、Y軸はtrace継続時間、バブルサイズはtrace内のspan数です。散布図により、長時間実行される、または大きなspanを持つ「大きな」traceを素早く発見できます。バブルをクリックすると、そのtraceの詳細がウォーターフォールチャートとして表示されます。
- Traceリスト領域(右下):一致するtraceのリストで、service、operation、trace_id、trace継続時間、span数などを表示します。デフォルトソート
Most Recentは、開始時間の降順で最新のtraceをリストします。ソートを切り替えて、最長/最短のtrace、または最多/最少spanを持つtraceを表示できます。

traceをクリックすると、豊富な詳細情報を含むTrace Panelが開き、そのtrace内のspanをさらに分析できます:
- traceのコールチェーンミニマップとウォーターフォールチャートを表示し、各spanの実行ウィンドウと呼び出し関係を含みます。
- spanをクリックして、その開始時間、継続時間、およびSpan AttributesとResource Attributesを含むコンテキスト情報を表示します。
- Span Filterをクリックして、Service Name、Span Name、Duration、Tagsなどによってspanをフィルタリングします。

一般的なフィルタ例
serviceによるフィルタリング
Service = frontend-web
指定されたサービスによって生成されたトレースを素早く表示します。

operationでフィルタ
Operation = HTTP POST
特定のエンドポイントやリクエストタイプを特定するのに便利です。

タグでフィルター
upstream_cluster.name="flagservice"
logfmt key=value構文を使用してスパン属性でフィルタリングします。

期間でフィルタリング
Min Duration = 100ms ``Max Duration = 1.2s
遅いリクエストを素早く特定できます。

ソートとページネーション
トレースリストは複数のソートオプションをサポートしています:
- Most Recent
- Longest / Shortest Duration
- Most / Fewest Spans
また、ページネーションによる閲覧もサポートしています。
