Spring Boot Actuator è un sottoprogetto di Spring Boot che offre funzionalità di monitoraggio e gestione delle applicazioni Spring Boot in esecuzione. Permette di monitorare l’applicazione, raccogliere dati, analizzare il traffico e lo stato del database senza aggiungere codice.
Una volta configurato Spring Actuator nel progetto, alcuni endpoint per la gestione e il monitoraggio dell’applicazione saranno disponibili di default. È possibile aggiungere nuovi endpoint per implementare controlli aggiuntivi.
Configurazione di Actuator in Spring Boot
Per utilizzare Actuator, basta aggiungere la dipendenza spring-boot-starter-actuator
al file pom.xml
(Maven) o build.gradle
(Gradle).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Dopo aver aggiunto la dipendenza e riavviato l’applicazione, Actuator sarà attivo.
Spring Boot Actuator fornisce endpoint per accedere alle informazioni sull’applicazione. L’accesso a questi endpoint può essere effettuato tramite HTTP.
Alcuni endpoint importanti includono:
- /health: Fornisce informazioni sullo “stato di salute” dell’applicazione, come lo stato della connessione al database. Questo endpoint non richiede autenticazione di default.
- /info: Mostra informazioni personalizzate sull’applicazione, come la versione e la descrizione.
- /metrics: Fornisce informazioni sulle “metriche” dell’applicazione al momento attuale, come la memoria utilizzata e il numero di thread.
- /loggers: Mostra e consente di modificare la configurazione del log dell’applicazione.
Le informazioni dettagliate sullo stato dell’applicazione vengono raccolte dai bean che implementano l’interfaccia HealthIndicator
configurata nel contesto.
Ad esempio, l’endpoint /health
potrebbe restituire informazioni semplici come:
{
"status": "UP"
}
Oltre a utilizzare gli endpoint predefiniti, è possibile personalizzarli e crearne di nuovi. La personalizzazione può includere la modifica dell’ id
, dello stato enabled
(attivazione/disattivazione) e di sensitive
(sensibilità – se è richiesta l’autenticazione).
Per creare un nuovo endpoint, è necessario implementare l’interfaccia Endpoint<T>
e definire la logica di elaborazione per tale endpoint.
Spring Boot Actuator supporta diverse tecnologie, tra cui Spring MVC e JMX. Si integra anche con Spring Security per proteggere l’accesso agli endpoint. Configurare la sicurezza per Actuator è fondamentale per impedire l’accesso non autorizzato a informazioni sensibili dell’applicazione.
La configurazione degli endpoint può essere effettuata tramite file properties o YAML. Ad esempio, per modificare l’id dell’endpoint /beans
in /springbeans
e consentire l’accesso senza autenticazione:
endpoints.beans.id=springbeans
endpoints.beans.sensitive=false
endpoints.beans.enabled=true