【イェーガー】
Jaeger とは?
💡 マイクロサービスの「探偵」——リクエストの旅路を追跡する
📌 このページのポイント
- マイクロサービス間のリクエストの流れ(トレース)を可視化し、どこで時間がかかっているかを特定できる
- OpenTelemetryと連携して、言語やフレームワークを問わずトレースデータを収集できる
- 各サービスの処理時間をウォーターフォール図で表示し、ボトルネックを直感的に把握できる
- CNCFの卒業プロジェクトとして、Kubernetes環境との親和性が高い
Jaegerって何をするツールなの?
マイクロサービスで構成されたシステムで、1つのリクエストがどのサービスをどの順番で通って、それぞれどのくらい時間がかかったかを追跡・可視化するツールだよ
なんでそんな追跡が必要なの?
どうやってデータを集めるの?
各サービスにOpenTelemetryのSDKを組み込んで、リクエストごとにトレースIDという識別子を付けてデータを送るんだ。Jaegerはそのデータを集めて、ウォーターフォール図として表示してくれるよ
ウォーターフォール図ってどんなもの?
ガントチャートのような図で、サービスAが50ms、サービスBが200ms、サービスCが30msみたいに、各サービスの処理時間が横棒グラフで表示されるんだ。「サービスBが遅い!」というのが一目で分かるよ
Zipkinっていう似たツールもあるみたいだけど、どう違うの?
ZipkinはTwitterが作った先駆者的なツールで、Jaegerはその後にUberが作ったものだよ。Jaegerは適応的サンプリング(トラフィック量に応じてトレース収集率を自動調整)やKubernetes Operatorによるデプロイなど、大規模運用向けの機能が充実しているんだ。今はどちらもOpenTelemetryに収斂していく流れだけど、Jaegerの方がCNCFエコシステムとの統合が進んでいるよ
まとめ:ざっくりこれだけ覚えればOK!
「Jaeger」って出てきたら「マイクロサービスのリクエスト追跡ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jaeger」 = 狩人(ドイツ語)
💬 ドイツ語で「狩人」「猟師」という意味。リクエストの問題箇所を「狩る」イメージから名付けられたよ