Motivation of this small project was to test Zipkin by setting up a test environment where multiple parts of an application would report to Zipkin in different phases of request execution.
- Google chrome + Zipkin plugin
- Todo App (forked from https://github.com/bmuschko/todo)
- Added Cassandra storage
- Added Zipkin instrumentation
- Cassandra
- Patched version of 3.X snapshot because CASSANDRA-11706 and CASSANDRA-12835
- With Cassandra Zipkin Tracing (forked from https://github.com/thelastpickle/cassandra-zipkin-tracing/network)
- Docker image
Official Zipkin docker setup configured with:
- Kafka as transport
- Cassandra as storage
Currently the scripts assume that you are running under Mac OS X and that you have certain prerequisites installed (making it run under Linux would not be a big problem).
Install prerequisites:
-
Install Homebrew
-
Run following command
brew install gnu-sed cassandra maven git
Execute one-time setup to download and compile cassandra zipkin module, zipkin docker compose scripts and the todo application used for testing:
./setup.sh
Optional: Install Google Chrome zipkin plugin or
Run this. It will start Zipkin + Kafka + Cassandra:
./run_zipkin.sh
In another console run this. This will create another instance of Cassandra accessible in the port 9043 (normally Cassandra uses 9042):
./run_app_cassandra.sh
After you have confirmed that application cassandra is up, run the app (this will create schema and everything):
./run_app.sh
Application is now running at http://localhost:8080/web.
Zipkin UI is running at http://localhost:9411/
Optional: Configure Google Chrome Zipkin plugin.