2021年6月13日日曜日

Jaeger 超入門

Jaeger 超入門

概要

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 件のコメント:

コメントを投稿