【イェーガー】

Jaeger とは?

最終更新:
💡 マイクロサービスの「探偵」——リクエストの旅路を追跡する

Uberで生まれたオープンソースの分散トレーシング基盤。サービスをまたぐ処理の記録を保存・検索・可視化し、遅延や障害の原因を調べる手がかりにする。

📌 このページのポイント
サービス間の処理を、時間軸で追う 🖥 サービスA Bを呼び出す 🖥 サービスB 同じトレースID・親子のスパン Jaegerで見る時間軸(架空の例) 0 100 200 300 A 0〜300 ms B 50〜250 ms AはBの処理を待つ時間を含む例 300 + 200 = 500 ms、とは数えない
上の矢印はAからBへの呼び出し。下はAが0〜300 ms、子のBが50〜250 msの架空のスパンで、横軸の単位はms。幅は同じ縮尺、色は同じサービス。親子の時間を単純に合計しない。
ひよこ ひよこ
Jaegerは何をするの?
ペンギン先生 ペンギン先生
複数のサービスにまたがる処理の記録を検索して、流れや時間を可視化するツールだよ。1つの処理のまとまりをスパン、それらをつないだ記録をトレースとして見るんだ。
ひよこ ひよこ
入れれば自動で全部追えるの?
ペンギン先生 ペンギン先生
各サービスで処理を記録する計装が必要だよ。OpenTelemetryなどを使い、呼び出し先へトレースIDや親スパンの情報を伝える。それがつながらないと、同じリクエストの記録として追えないんだ。
ひよこ ひよこ
データを送ったら何が見えるの?
ペンギン先生 ペンギン先生
Jaegerの収集側で受け取り、保存したスパンを検索・表示するよ。時間軸に沿った横棒で、開始時刻、継続時間、親子関係などを確認できる。図はAがBを呼び出した架空の例だよ。
ひよこ ひよこ
一番長い棒が、必ず遅延の犯人?
ペンギン先生 ペンギン先生
親の時間には子の処理を待つ時間も含まれうるよ。長さだけで原因を決めず、入れ子や並行処理、エラーなども見る。全スパンの時間を単純に足してリクエストの時間にすることもできないんだ。
ひよこ ひよこ
すべてのリクエストが記録されるの?
ペンギン先生 ペンギン先生
収集する割合を選ぶサンプリングや、保存期間、計装の範囲によるよ。Jaegerは調査の手がかりを示すもので、記録されていない処理まで見えるわけではない。ログやメトリクスと合わせて調べることもあるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Jaeger」って出てきたら「マイクロサービスのリクエスト追跡ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jaeger」 = 狩人(ドイツ語)
💬 ドイツ語のJägerは「狩人」という意味だよ。プロジェクトはUberが2016年に公開したもので、名前の意味だけから具体的な命名の理由までは断定しないんだ

参考資料

← 用語集にもどる