概要
Jaeger は分散トレーシングシステムです 過去に Zipkin を試しましたがこれと同じような golang 製のツールになります 今回はどんなツールなのか理解するためにローカルで簡単に動作させる方法を紹介します
環境
- macOS 11.4
- Jaeger
- docker 20.10.6
Jaeger の起動
Jaeger は複数のコンポーネントで構成されるツールになります UI や agent, DB などがあります プロダクションではそれぞれ個別で構築し HA 構成などを取ることが推奨されています が、ローカルで気軽に試すのはそれだと大変んです なので docker でオールインワンパッケージとしてイメージが公開されているのでそれを使うと簡単に試すことができます
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-p 5775:5775/udp \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14268:14268 \
-p 14250:14250 \
-p 9411:9411 \
jaegertracing/all-in-one:1.22
それぞれのコンポーネントで必要となるポートはホスト側でバインドして上げています これで localhost:16686 にアクセスすると Jaeger の UI を確認することができます
テスト用のアプリを起動する
HotROD という Jaeger に対応したサンプル Web アプリがあるのでこれを使います
事前に起動しておいた Jaeger に接続するために --link
オプションを使います
docker run --rm -it \
--link jaeger \
-p8080-8083:8080-8083 \
-e JAEGER_AGENT_HOST="jaeger" \
jaegertracing/example-hotrod:1.22 \
all
これで localhost:8080 にアクセスするとサンプルアプリにアクセスできます
動作確認
画面をポチポチすると Jaeger 側にトレースデータが送信されます
「find trace」をクリックすると Jager 側に登録されたトレース情報を確認することができます
最後に
docker で簡単に確認できるのは嬉しいです 実際は各種クライアントがあるのでこれを使って自分のアプリにトレース情報を送信する仕組みを作る必要があります
0 件のコメント:
コメントを投稿