1. やりたいこと
oreillyのマイクロサービスアーキテクチャを読んで、OpenZipkinを試してみたくなりました。
ドキュメントのQuickstartを読みながら、docker-compose
で試してみようと思います!
Zipkin is a distributed tracing system.
It helps gather timing data needed to troubleshoot latency problems in microservice architectures.
It manages both the collection and lookup of this data through a Collector and a Query service.
Zipkin’s design is based on the Google Dapper paper.
分散環境で、システムトレースをするために使うみたいですね。
時系列を扱うようなサービスでのlatencyのトラブルシューティングで役に立つそうです。
また、GoogleのDapperを参考にしているみたいです。
2. 手順
- githubからdocker-compose用のプロジェクトを落としてくる
- docker-composeでサービスを立ち上げる
- 8080ポートでブラウザアクセスしてみる
-
Find Trace
ボタンを押下してみる -
zipkin-query
というバーを押下してみる - さらに、
zipkin-query
バーを押下してみる
3. 実施事項
3-1. githubからdocker-compose用のプロジェクトを落としてくる
git clone https://github.com/openzipkin/docker-zipkin.git
3-2. docker-composeでサービスを立ち上げる
cd docker-zipkin
docker-compose up
3-3. 8080ポートでブラウザアクセスしてみる
これがトップ画像みたいです。
3-4. Find Trace
ボタンを押下してみる
3-5. zipkin-query
というバーを押下してみる
3-6. さらに、zipkin-query
バーを押下してみる
ポップアップが出てきましたね!
4. 次回やること
ここに対して、ガシガシとデータを突っ込んでいけばいいわけですね!
RubyのTracerが用意されていますのでこちらを試したいと思います。
また、他のTracer突っ込むサンプルのようなものは以下のとおりあるみたいです。
Golang製のもあるんですね。RPC周りの実装とかどうやってるのとか、含めて使って、かつ、見てみたいと思います!
Language | Library | Framework | Transports Supported | Sampling Supported? | Other notes |
---|---|---|---|---|---|
Python | pyramid_zipkin | Pyramid | Kafka | Scribe | Yes | py2, py3 support. |
Java | brave | Jersey, RestEASY, JAXRS2, Apache HttpClient, Mysql | Http, Kafka, Scribe | Yes | Java 7 or higher |
Ruby | zipkin-tracer | Rack | Http, Kafka, Scribe | Yes | lc support. Ruby 2.0 or higher |
C# | ZipkinTracerModule | OWIN, HttpHandler | Http | Yes | lc support. 4.5.2 or higher |
Go | go-zipkin | x/net Context | Kafka | Yes |
本日はここまでとなります。
次回はmicroservicesの調査に向けて〜railsのサンプルアプリにzipkinのtracerを仕込んで動作確認をしてみよう!です。