/workshop-springboot-observability

Observability of Spring Boot + Docker

Primary LanguageJava

Workshop Spring boot and observability

  • Logging
  • Tracing
  • Metric

Step to run

1. Create JAR file in each services

Service A

$cd service_a
$mvnw clean package

Service B

$cd service_b
$mvnw clean package

2. Create all containers with docker compose

$docker compose build
$docker compose up -d
$docker compose ps

NAME                    COMMAND                  SERVICE             STATUS              PORTS
workshop-grafana-1      "/run.sh"                grafana             running             0.0.0.0:3000->3000/tcp
workshop-prometheus-1   "/bin/prometheus --c…"   prometheus          running             0.0.0.0:9090->9090/tcp
workshop-service-a-1    "java -jar ./app.jar"    service-a           running             0.0.0.0:8081->8080/tcp
workshop-service-b-1    "java -jar ./app.jar"    service-b           running             0.0.0.0:8082->8080/tcp
workshop-zipkin-1       "start-zipkin"           zipkin              running (healthy)   0.0.0.0:9411->9411/tc

See all logs in container

$docker compose logs --follow

3. Call service A -> service B

$curl http://localhost:8081/call

Hello from service B

4. Check observability

Metric with Prometheus and Grafana

Distributed tracing with Zipkin

Centralized log with ELK stack