【イェーガー】

Jaeger とは?

💡 マイクロサービスの「探偵」——リクエストの旅路を追跡する
📌 このページのポイント
Jaeger 分散トレーシングの仕組み リクエスト サービスA 50ms サービスB 200ms サービスC 30ms サービスD 80ms Trace ID: abc-123 で全サービスを関連付け Jaeger ウォーターフォール表示 サービスA サービスB 遅い! サービスC サービスD
Jaeger のトレース可視化イメージ
ひよこ ひよこ

Jaegerって何をするツールなの?

ペンギン先生 ペンギン先生

マイクロサービスで構成されたシステムで、1つのリクエストがどのサービスをどの順番で通って、それぞれどのくらい時間がかかったかを追跡・可視化するツールだよ

ひよこ ひよこ

なんでそんな追跡が必要なの?

ペンギン先生 ペンギン先生

マイクロサービスだと、1回のAPIリクエストの裏で10個以上のサービスが連携していることもあるんだ。レスポンスが遅いとき、どのサービスがボトルネックなのかを特定するのが大変なんだよ。Jaegerを使えば、その「犯人」をすぐに見つけられるんだ

ひよこ ひよこ

どうやってデータを集めるの?

ペンギン先生 ペンギン先生

各サービスにOpenTelemetrySDKを組み込んで、リクエストごとにトレースIDという識別子を付けてデータを送るんだ。Jaegerはそのデータを集めて、ウォーターフォール図として表示してくれるよ

ひよこ ひよこ

ウォーターフォール図ってどんなもの?

ペンギン先生 ペンギン先生

ガントチャートのような図で、サービスAが50ms、サービスBが200ms、サービスCが30msみたいに、各サービスの処理時間が横棒グラフで表示されるんだ。「サービスBが遅い!」というのが一目で分かるよ

ひよこ ひよこ

Zipkinっていう似たツールもあるみたいだけど、どう違うの?

ペンギン先生 ペンギン先生

ZipkinはTwitterが作った先駆者的なツールで、Jaegerはその後にUberが作ったものだよ。Jaegerは適応的サンプリング(トラフィック量に応じてトレース収集率を自動調整)やKubernetes Operatorによるデプロイなど、大規模運用向けの機能が充実しているんだ。今はどちらもOpenTelemetryに収斂していく流れだけど、Jaegerの方がCNCFエコシステムとの統合が進んでいるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Jaeger」って出てきたら「マイクロサービスのリクエスト追跡ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jaeger」 = 狩人(ドイツ語)
💬 ドイツ語で「狩人」「猟師」という意味。リクエストの問題箇所を「狩る」イメージから名付けられたよ
← 用語集にもどる