This project demonstrates Observability using:
- Prometheus for monitoring and alerting
- Loki for Distributed Logging
- Tempo for Distributed Tracing
- Grafana for visualization
And basically integrates the following
- Opentelemetry
- Grafana Tempo Which internally uses Jaeger
- Spring Boot Project
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