Monitoraggio in Spring Boot

Un'applicazione in produzione deve fare molto più che limitarsi a girare. Deve essere osservabile e facile da riparare in caso di guasto. Sono necessari health check, metriche, log e procedure chiare per gestire gli incidenti.

Spring Boot utilizza Actuator per fornire queste funzionalità. Actuator mette a disposizione endpoint come health, metrics e info. È possibile esporli tramite HTTP o JMX.

Aree chiave da monitorare:

• Disponibilità: Controllare uptime, readiness e liveness. • Performance: Monitorare tempi di risposta, latenza e throughput. • Errori: Monitorare gli errori HTTP 4xx/5xx e i messaggi falliti. • JVM: Monitorare heap, memoria, CPU e thread. • Database: Monitorare i connection pool e le query lente. • Kafka: Monitorare il consumer lag e i tassi di retry.

Raccolta delle metriche

Spring Boot utilizza Micrometer per raccogliere le metriche. È possibile utilizzare il registro Prometheus per esporre queste metriche. Una configurazione comune prevede:

Spring Boot App → Prometheus → Grafana

Ciò consente di visualizzare i dati dell'applicazione su dashboard.

Best practice per il logging

I log aiutano a capire cosa è accaduto durante un guasto. In produzione, utilizza il logging JSON strutturato per rendere i log leggibili dalle macchine.

Da fare:

Da non fare:

Stabilità operativa

Il supporto operativo significa mantenere il servizio stabile dopo il deployment. Dovresti concentrarti su:

Un servizio Spring Boot robusto è facile da monitorare, facile da debuggare e facile da ripristinare.

Fonte: https://dev.to/antonio_casado_1fe39cd90e/monitoring-in-spring-boot-1220