/boot-opentelemetry-tempo

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

Primary LanguageJava

Project Demonstrating Observability For Java Spring Applications

This project demonstrates Observability using:

And basically integrates the following

Running

Execute the following on root folder

mvn clean package docker:build

Images

docker image ls
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

docker-compose up

Docker Stack

docker swarm init
docker stack deploy --compose-file docker-compose.yaml trace
docker stack services trace
docker stack rm trace

Variations

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.

Basic

Multiple micro-services with db and rest interactions

Complex

Multiple micro-services with db, MQ (Rabbit), redis and rest interactions

Tracing

Access the endpoint

View the log and trace in Grafana

Get the trace information Using Jaeger as well

Basic Trace

Complex Trace

Prometheus Metrics

View the metrics in prometheus

You can view it in Grafana as well

Connecting To PostgreSQL DB

Connect

Credits

Also See