コンテンツにスキップ

Jaeger@監視ツール

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Jaegerの仕組み

アーキテクチャ

Jaeger は複数のコンポーネントから構成されている。

  • jaeger クライアントパッケージ (執筆時点 2022/07/16 で、otel クライアントパッケージの使用が推奨)
  • jaeger エージェント
  • Jaeger Collector
  • ローカルストレージまたはリモートストレージ
  • jaeger クエリ
  • ダッシュボード (UI)

jaeger_architecture


jaegerクライアントパッケージ (非推奨)

執筆時点 (2022/07/16) で、otel クライアントパッケージを使用することが推奨である。

参考程度に、jaeger クライアントパッケージの仕組みを記載する。

アプリケーションにて、jaeger クライアントパッケージはスパンを作成し、加えてリクエストにコンテキスト (トレース ID、スパン ID、OpenTracing バゲージ) を付与する。

jaeger クライアントパッケージは、コンテナ内でデーモンとして常駐する jaeger エージェントにスパンを渡す。


jaegerエージェント

jaeger エージェントは、Pod 内でサイドカーとして常駐し、アプリコンテナからスパンの受信をリッスンする。

もし、サービスメッシュツール (例:Istio、Linkerd) のサイドカーモデルと Jaeger の両方を採用する場合、jaeger エージェントの代わりにサイドカーを使用することになるため、jaeger エージェントは不要になる。


Jaeger Collector

Jaeger Collector は、プッシュ型で jaeger エージェントからコンテキストを収集し、ローカルストレージに保管する。

Jaeger のダッシュボードは、このローカルストレージからスパンを取得し、分散トレースとして可視化する。

もし、サービスメッシュツール (例:Istio、Linkerd) のサイドカーモデルと Jaeger の両方を採用する場合、jaeger エージェントの代わりに、サイドカーがプロキシ (例:Jaeger Collector) にスパンを送信する責務を持つ。


ローカルストレージまたはリモートストレージ

ローカルストレージまたはリモートストレージは、スパンを永続化する。

リモートストレージとして、Apache Cassandra、Elasticsearch などを使用できる。


ダッシュボード

ダッシュボードは、jaeger クエリを使用して、ストレージ内のコンテキストを分散トレースとして可視化する。