Jaeger@監視ツール¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. Jaeger の仕組み¶
アーキテクチャ¶
Jaeger は複数のコンポーネントから構成されている。
- jaeger クライアントパッケージ (執筆時点 2022/07/16 で、otel クライアントパッケージの使用が推奨)
- jaeger エージェント
- Jaeger Collector
- ローカルストレージまたはリモートストレージ
- jaeger クエリ
- ダッシュボード (UI)

jaeger クライアントパッケージ (非推奨)¶
執筆時点 (2022/07/16) で、otel クライアントパッケージを使用することが推奨である。
参考程度に、jaeger クライアントパッケージの仕組みを記載する。
アプリケーションにて、jaeger クライアントパッケージはスパンを作成し、加えてリクエストにコンテキスト (トレース ID、スパン ID、OpenTracing バゲージ) を付与する。
jaeger クライアントパッケージは、コンテナ内でデーモンとして常駐する jaeger エージェントにスパンを渡す。
jaeger エージェント¶
jaeger エージェントは、Pod 内でサイドカーとして常駐し、アプリコンテナからスパンの受信をリッスンする。
Istio と Jaeger を連携する場合、istio-proxy は、Istio に登録したトレースプロバイダーへスパンを送信する。Jaeger Agent の要否は、そのトレースプロバイダーと収集経路の構成によって決まる。
Jaeger Collector¶
Jaeger Collector は、プッシュ型で jaeger エージェントからコンテキストを収集し、ローカルストレージに保管する。
Jaeger のダッシュボードは、このローカルストレージからスパンを取得し、分散トレースとして可視化する。
Istio と連携する場合、istio-proxy は、MeshConfig で登録し Telemetry で選択したトレースプロバイダーへスパンを送信する。
ローカルストレージまたはリモートストレージ¶
ローカルストレージまたはリモートストレージは、スパンを永続化する。
リモートストレージとして、Apache Cassandra、Elasticsearch などを使用できる。
ダッシュボード¶
ダッシュボードは、jaeger クエリを使用して、ストレージ内のコンテキストを分散トレースとして可視化する。