Spring Boot Actuator est un sous-projet de Spring Boot offrant des fonctionnalités de surveillance et de gestion des applications Spring Boot en cours d’exécution. Il permet de suivre, de surveiller l’application, de collecter des données, le trafic et l’état de la base de données sans ajouter de code.
Une fois le projet configuré avec Spring Actuator, plusieurs points de terminaison sont disponibles par défaut pour gérer et surveiller l’application. Si des contrôles supplémentaires sont nécessaires, de nouveaux points de terminaison peuvent être ajoutés.
Configuration d’Actuator dans Spring Boot
Pour utiliser Actuator, il suffit d’ajouter la dépendance spring-boot-starter-actuator
au fichier pom.xml
(Maven) ou build.gradle
(Gradle).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Après avoir ajouté la dépendance et redémarré l’application, Actuator sera activé.
Spring Boot Actuator fournit des points de terminaison pour accéder aux informations sur l’application. L’accès à ces points de terminaison peut être effectué via HTTP.
Voici quelques points de terminaison importants :
- /health: Fournit des informations sur la « santé » de l’application, comme l’état de la connexion à la base de données. Ce point de terminaison ne nécessite pas d’authentification par défaut.
- /info: Affiche des informations personnalisées sur l’application, telles que la version et la description.
- /metrics: Fournit des « métriques » de l’application à l’instant T, telles que l’utilisation de la mémoire et le nombre de threads.
- /loggers: Affiche et permet de modifier la configuration des journaux de l’application.
Les informations détaillées sur l’état de l’application sont collectées à partir des beans implémentant l’interface HealthIndicator
configurée dans le contexte.
Par exemple, le point de terminaison /health
peut renvoyer des informations simples comme :
{
"status": "UP"
}
En plus d’utiliser les points de terminaison par défaut, il est possible de personnaliser et de créer de nouveaux points de terminaison. La personnalisation peut inclure la modification de l’id
, de l’état enabled
(activation/désactivation) et de la sensibilité sensitive
(nécessité d’authentification) du point de terminaison.
Pour créer un nouveau point de terminaison, il faut implémenter l’interface Endpoint<T>
et définir la logique de traitement pour ce point de terminaison.
Spring Boot Actuator prend en charge diverses technologies, notamment Spring MVC et JMX. Il s’intègre également à Spring Security pour sécuriser l’accès aux points de terminaison. La configuration de la sécurité pour Actuator est essentielle pour empêcher tout accès non autorisé aux informations sensibles de l’application.
La configuration des points de terminaison peut être effectuée via des fichiers properties ou YAML. Par exemple, pour modifier l’id du point de terminaison /beans
en /springbeans
et autoriser l’accès sans authentification :
endpoints.beans.id=springbeans
endpoints.beans.sensitive=false
endpoints.beans.enabled=true