【イェーガー】
Jaeger とは?
最終更新:
💡 マイクロサービスの「探偵」——リクエストの旅路を追跡する
Uberで生まれたオープンソースの分散トレーシング基盤。サービスをまたぐ処理の記録を保存・検索・可視化し、遅延や障害の原因を調べる手がかりにする。
📌 このページのポイント
- サービスをまたぐ処理の記録を、トレースとして検索・可視化する
- OpenTelemetryなどで計装し、サービス間で文脈を伝える必要がある
- 各スパンの開始・終了時刻や親子関係を、時間軸上で確認する
- CNCFの卒業プロジェクトで、収集・保存・表示の構成を選べる
Jaegerは何をするの?
複数のサービスにまたがる処理の記録を検索して、流れや時間を可視化するツールだよ。1つの処理のまとまりをスパン、それらをつないだ記録をトレースとして見るんだ。
入れれば自動で全部追えるの?
各サービスで処理を記録する計装が必要だよ。OpenTelemetryなどを使い、呼び出し先へトレースIDや親スパンの情報を伝える。それがつながらないと、同じリクエストの記録として追えないんだ。
データを送ったら何が見えるの?
Jaegerの収集側で受け取り、保存したスパンを検索・表示するよ。時間軸に沿った横棒で、開始時刻、継続時間、親子関係などを確認できる。図はAがBを呼び出した架空の例だよ。
一番長い棒が、必ず遅延の犯人?
親の時間には子の処理を待つ時間も含まれうるよ。長さだけで原因を決めず、入れ子や並行処理、エラーなども見る。全スパンの時間を単純に足してリクエストの時間にすることもできないんだ。
すべてのリクエストが記録されるの?
収集する割合を選ぶサンプリングや、保存期間、計装の範囲によるよ。Jaegerは調査の手がかりを示すもので、記録されていない処理まで見えるわけではない。ログやメトリクスと合わせて調べることもあるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Jaeger」って出てきたら「マイクロサービスのリクエスト追跡ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jaeger」 = 狩人(ドイツ語)
💬 ドイツ語のJägerは「狩人」という意味だよ。プロジェクトはUberが2016年に公開したもので、名前の意味だけから具体的な命名の理由までは断定しないんだ