ウクライナの旗 私たちはウクライナの友人や同僚を支持します。困難な時期にあるウクライナを支援するために、このページをご覧ください

入門

ローカル環境でJaegerを起動して実行する

バージョン  1.62 最新

分散トレーシングを初めて使用する場合は、はじめにページをご確認ください。

計測

アプリケーションがJaegerにトレーシングデータを送信できるようにするには、事前に計測を行う必要があります。OpenTelemetry外部リンク の計測機能とSDKを使用することをお勧めします。

従来、JaegerプロジェクトはOpenTracing APIを実装する独自のSDK(別名トレーサー、クライアントライブラリ)をサポートしていました。2022年現在、Jaeger SDKはサポートされなくなり、すべてのユーザーはOpenTelemetryに移行することをお勧めします。

オールインワン

all-in-oneは、ローカルでの迅速なテスト用に設計された実行可能ファイルです。Jaeger UI、jaeger-collectorjaeger-query、およびjaeger-agentが含まれており、メモリ内ストレージコンポーネントを使用します。

オールインワンを起動する最も簡単な方法は、DockerHubに公開されているプリビルドイメージを使用することです(1つのコマンドライン)。

docker run --rm --name jaeger \
  -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 14250:14250 \
  -p 14268:14268 \
  -p 14269:14269 \
  -p 9411:9411 \
  jaegertracing/all-in-one:1.62.0

または、バイナリ配布アーカイブからjaeger-all-in-one(.exe)実行可能ファイルを実行します。

jaeger-all-in-one --collector.zipkin.host-port=:9411

その後、http://localhost:16686に移動してJaeger UIにアクセスできます。

コンテナは次のポートを公開します

ポートプロトコルコンポーネント機能
6831UDPagentThrift-compactプロトコル経由でjaeger.thriftを受け入れます(ほとんどのSDKで使用)。
6832UDPagentThrift-binaryプロトコル経由でjaeger.thriftを受け入れます(Node.js SDKで使用)。
5775UDPagent(非推奨)compact Thriftプロトコル経由でzipkin.thriftを受け入れます(レガシークライアントでのみ使用)。
5778HTTPagent構成(サンプリングなど)を提供します。
16686HTTPqueryフロントエンドを提供します。
4317HTTPcollectorgRPC経由でOpenTelemetryプロトコル(OTLP)を受け入れます。
4318HTTPcollectorHTTP経由でOpenTelemetryプロトコル(OTLP)を受け入れます。
14268HTTPcollectorクライアントから直接jaeger.thriftを受け入れます。
14250HTTPcollectormodel.protoを受け入れます。
9411HTTPcollectorZipkin互換のエンドポイント(オプション)

サービスパフォーマンスモニタリング(SPM)を使用する場合

サービスパフォーマンスモニタリング(SPM)を参照してください。

Kubernetes上

Kubernetes Operatorを参照してください:https://github.com/jaegertracing/jaeger-operator外部リンク

サンプルアプリ:HotROD

HotROD(Rides on Demand)は、いくつかのマイクロサービスで構成され、OpenTelemetry外部リンク と分散トレーシングの使用例を示すデモアプリケーションです。チュートリアル/ウォークスルーは、ブログ記事「JaegerでHotRODに乗る外部リンク 」で利用できます。

HotRODアプリはスタンドアロンで実行できますが、トレースを表示するにはJaegerバックエンドが必要です。

機能

  • データ駆動型の依存関係図を介して、システム全体のアーキテクチャを発見します。
  • リクエストのタイムラインとエラーを表示し、アプリがどのように機能するかを理解します。
  • レイテンシーと同時実行性の欠如の原因を見つけます。
  • 高度にコンテキスト化されたロギング。
  • バッグの伝播を使用して、リクエスト間の競合(キューイング)とサービスで費やされた時間を診断します。
  • opentelemetry-contribのオープンソースライブラリを使用して、ベンダーニュートラルな計測を無料で入手します。

実行

docker composeを介してJaegerとHotRODを一緒に実行することをお勧めします。

Docker Composeを使用する場合

git clone git@github.com:jaegertracing/jaeger.git jaeger
cd jaeger/examples/hotrod
docker compose up
# Ctrl-C to stop

Dockerを使用する場合

docker run --rm -it --link jaeger \
  -p8080-8083:8080-8083 \
  -e OTEL_EXPORTER_OTLP_ENDPOINT="http://jaeger:4318" \
  jaegertracing/example-hotrod:1.62.0 \
  all --otel-exporter=otlp

ソースから

ソースから実行するには、次が必要です

git clone git@github.com:jaegertracing/jaeger.git jaeger
cd jaeger
go run ./examples/hotrod/main.go all

バイナリ配布から

バイナリ配布アーカイブからexample-hotrod(.exe)実行可能ファイルを実行します。

example-hotrod all

次に、http://localhost:8080に移動します。

Zipkinからの移行

jaeger-collectorサービスは、ThriftとJSONの両方を受け入れるZipkin互換のREST API /api/v1/spansを公開します。また、JSONおよびProto用の/api/v2/spansもあります。デフォルトでは無効になっています。--collector.zipkin.host-port=:9411で有効にできます。

Zipkin Thriftexternal link IDL および Zipkin Protoexternal link IDL ファイルは、jaegertracing/jaeger-idlexternal link リポジトリにあります。これらは、openzipkin/zipkin-apiexternal link Thriftexternal link および Protoexternal link と互換性があります。