Jaeger の監視
Jaeger 自体は、分散型のマイクロサービスベースのシステムです。本番環境で実行する場合は、バックエンドが過剰なトレースデータで飽和しないように、さまざまなコンポーネントに対して適切な監視を設定することをお勧めします。
メトリクス
デフォルトでは、Jaeger マイクロサービスは Prometheus 形式でメトリクスを公開します。これは、次のコマンドラインオプションで制御されます。
--admin.http.host-port
HTTP 管理サーバーが実行されているポート番号--metrics-backend
測定値の公開方法を制御します。デフォルト値はprometheus
で、別のオプションとして、プロセスレベルの統計情報を公開するための Go 標準メカニズムであるexpvar
があります。--metrics-http-route
メトリクスのスクレイピングに使用される HTTP エンドポイントの名前を指定します(デフォルトは/metrics
)。
各 Jaeger コンポーネントは、管理ポートでメトリクススクレイピングエンドポイントを公開します。
コンポーネント | ポート |
---|---|
jaeger-agent | 14271 |
jaeger-collector | 14269 |
jaeger-query | 16687 |
jaeger-ingester | 14270 |
オールインワン | 14269 |
Jaeger の Prometheus モニタリングミキシン
Jaeger の Prometheus モニタリングミキシンは、Prometheus、Alertmanager、Grafana を使用して Jaeger を監視したいユーザーのための出発点となります。これには、事前に構築された ダッシュボード が含まれています。詳細については、ドキュメント を参照してください。
ロギング
Jaeger コンポーネントは、構造化ロギングライブラリ go.uber.org/zap を使用して標準出力にのみログを出力します。たとえば、ログ行は JSON エンコードされた文字列として書き込まれます。
{"level":"info","ts":1615914981.7914007,"caller":"flags/admin.go:111","msg":"Starting admin HTTP server","http-addr":":14269"}
{"level":"info","ts":1615914981.7914548,"caller":"flags/admin.go:97","msg":"Admin server started","http.host-port":"[::]:14269","health-status":"unavailable"}
ログレベルは、--log-level
コマンドラインスイッチで調整できます。デフォルトレベルは info
です。
トレース
Jaeger は、クエリサービスへのリクエストなど、独自のコンポーネントの一部をトレースする機能を備えています。はじめに で説明されているように all-in-one
を開始し、UI 画面を数回更新すると、サービスドロップダウンに jaeger-all-in-one
が表示されます。これらのトレースを Jaeger UI に表示したくない場合は、OTEL_TRACES_SAMPLER=always_off
環境変数を使用して Jaeger バックエンドコンポーネントを実行することで無効にできます。
docker run -e OTEL_TRACES_SAMPLER=always_off -p 16686:16686 jaegertracing/all-in-one:1.62.0