Que fait spring-boot-actuator ?
Fournit des patrons de configuration pour Spring Boot Actuator dédiés à la supervision de niveau production, aux sondes de santé, aux points de terminaison d'administration sécurisés et aux métriques Micrometer pour les services JVM. À utiliser lors de la mise en place de la supervision, des vérifications de santé ou des métriques pour les applications Spring Boot.
Configuration de base
Ajoutez la dépendance suivante dans votre fichier pom.xml :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Ou dans build.gradle :
implementation 'org.springframework.boot:spring-boot-starter-actuator'
Activer les endpoints
Dans application.yml :
management:
endpoints:
web:
exposure:
include: health,info,metrics,env,beans,loggers
endpoint:
health:
show-details: when-authorized
show-components: when-authorized
Sondes de santé (liveness/readiness)
Pour Spring Boot 2.3+, activez les sondes :
management:
health:
probes:
enabled: true
endpoint:
health:
show-details: always
group:
liveness:
include: livenessState
readiness:
include: readinessState
Sécurisation des endpoints
Avec Spring Security, ajoutez une configuration pour restreindre l'accès aux endpoints sensibles :
@Configuration
public class ActuatorSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.requestMatchers(EndpointRequest.to("health", "info")).permitAll()
.requestMatchers(EndpointRequest.toAnyEndpoint()).hasRole("ADMIN")
.anyRequest().authenticated()
)
.httpBasic(Customizer.withDefaults());
return http.build();
}
}
Métriques avec Micrometer
Exporter les métriques vers Prometheus :
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
Configuration :
management:
endpoints:
web:
exposure:
include: prometheus,metrics
Vous pouvez également configurer des métriques personnalisées en utilisant l'API Micrometer.
Exemple d'utilisation
Lors de la configuration d'un nouveau service Spring Boot, appliquez les éléments ci-dessus en fonction des besoins :
- Pour une vérification de santé basique : activez simplement les endpoints
healthetinfo. - Pour une supervision Kubernetes : activez les sondes de liveness/readiness.
- Pour un monitoring avancé : ajoutez la sécurité et les métriques Prometheus.
Ce skill vous guide pas à pas pour une configuration robuste et prête pour la production.