Project demonstrating Complete Observability Stack utilizing Prometheus, Loki (For distributed logging), Tempo (For Distributed tracing, this basically uses Jaeger Internally), Grafana for Java/spring based applications (With OpenTelemetry auto / manual Instrumentation) involving multiple microservices with DB interactions
This project demonstrates Observability using:
And basically integrates the following
Execute the following on root folder
mvn clean package docker:build
Images
docker image ls | grep mnadeem
REPOSITORY TAG IMAGE ID CREATED SIZE
mnadeem/boot-otel-tempo-provider1 0.0.1-SNAPSHOT 7ddceebcc722 About a minute ago 169MB
mnadeem/boot-otel-tempo-api 0.0.1-SNAPSHOT a301242388a1 2 minutes ago 147MB
mnadeem/boot-otel-tempo-docker 0.0.1-SNAPSHOT 061a20db744b 4 minutes ago 130MB
And then either docker compose
or docker stack
docker-compose up
docker swarm init
docker stack deploy --compose-file docker-compose.yaml trace
docker stack services trace
docker stack rm trace
There are two variations basic and complex, both version have support for 0.15.0
, 0.16.0
and 0.17.0
in its own branches.
Multiple micro-services with db and rest interactions
Multiple micro-services with db, MQ (Rabbit), redis and rest interactions
View the log and trace in Grafana
Get the trace information Using Jaeger as well
Basic Trace
Complex Trace
View the metrics in prometheus
You can view it in Grafana as well