Hot R.O.D. - Rides on Demand
This is a demo application that consists of several microservices and illustrates the use of the OpenTracing API. It can be run standalone, but requires Jaeger backend to view the traces. A tutorial / walkthough is available:
- as a blog post Take OpenTracing for a HotROD ride,
- as a video OpenShift Commons Briefing: Distributed Tracing with Jaeger & Prometheus on Kubernetes.
- Discover architecture of the whole system via data-driven dependency diagram
- View request timeline & errors, understand how the app works
- Find sources of latency, lack of concurrency
- Highly contextualized logging
- Use baggage propagation to
- Diagnose inter-request contention (queueing)
- Attribute time spent in a service
- Use open source libraries with OpenTracing integration to get vendor-neutral instrumentation for free
Run Jaeger Backend
An all-in-one Jaeger backend is packaged as a Docker container with in-memory storage.
docker run \ --rm \ --name jaeger \ -p6831:6831/udp \ -p16686:16686 \ jaegertracing/all-in-one:1.6
Jaeger UI can be accessed at http://localhost:16686.
Run HotROD from source
go get github.com/jaegertracing/jaeger cd $GOPATH/src/github.com/jaegertracing/jaeger make install cd examples/hotrod go run ./main.go all
Run HotROD from docker
docker run \ --rm \ --link jaeger \ --env JAEGER_AGENT_HOST=jaeger \ --env JAEGER_AGENT_PORT=6831 \ -p8080-8083:8080-8083 \ jaegertracing/example-hotrod:latest \ all
Then open http://127.0.0.1:8080