Implement observability directly with executable code and configurations.

Learning Path#

  1. Environment Setup - Configure Prometheus + Grafana + Loki + Tempo with Docker Compose
  2. Spring Boot Metrics - Configure Actuator + Micrometer
  3. Kafka Monitoring - Build Kafka cluster observability
  4. Full-Stack Observability - Integrate Metrics + Logs + Traces

Example Project Structure#

examples/
├── docker-compose.yml       # Complete infrastructure
├── prometheus/
│   ├── prometheus.yml      # Prometheus configuration
│   └── rules/              # Recording/Alerting Rules
├── grafana/
│   ├── provisioning/       # Datasources, dashboards
│   └── dashboards/         # JSON dashboards
└── spring-app/
    └── application.yml     # Spring Boot configuration

Tech Stack#

ComponentToolRole
Metrics CollectionPrometheusTime-series metrics storage
Metrics ExposureMicrometerSpring Boot metrics
Log CollectionLoki + PromtailLog storage/querying
Distributed TracingTempoTrace storage
VisualizationGrafanaDashboard
AlertingAlertmanagerAlert routing

Prerequisites#

  • Docker 24.0+
  • Docker Compose 2.20+
  • 4GB+ memory
  • (Optional) Java 17+, Gradle 8+