Spring Boot Actuator est un sous-projet de Spring Boot qui fournit des fonctionnalités prêtes pour la production pour vous aider à surveiller et gérer votre application. Il offre un ensemble de points de terminaison intégrés qui vous permettent d'obtenir des informations sur la santé, les métriques et l'environnement de votre application, ainsi que de la contrôler de manière dynamique.
Spring Boot Actuator fournit plusieurs points de terminaison prêts à l'emploi qui peuvent être utilisés pour surveiller et interagir avec votre application. Ces points de terminaison sont accessibles via HTTP, JMX ou à l'aide de Spring Boot Admin.
Pour utiliser Actuator dans votre application Spring Boot, vous devez ajouter la dépendance Actuator à votre fichier pom.xml :
org.springframework.boot spring-boot-starter-actuator
Si vous utilisez Gradle, ajoutez ce qui suit à votre fichier build.gradle :
implementation 'org.springframework.boot:spring-boot-starter-actuator'
Par défaut, seuls quelques points de terminaison sont activés. Vous pouvez activer des points de terminaison supplémentaires dans votre fichier application.yml :
management: endpoints: web: exposure: include: "*" # This exposes all available endpoints endpoint: health: show-details: always # Show detailed health information
Une fois Actuator configuré, vous pouvez accéder aux différents points de terminaison fournis par celui-ci. Voici quelques points de terminaison couramment utilisés :
Le point de terminaison /actuator/health fournit des informations sur l'état de santé de votre application :
GET http://localhost:8080/actuator/health
Exemple de réponse :
{ "status": "UP", "components": { "db": { "status": "UP", "details": { "database": "H2", "result": 1 } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 16989374464, "threshold": 10485760, "exists": true } } } }
Le point de terminaison /actuator/metrics fournit diverses métriques liées à votre application :
GET http://localhost:8080/actuator/metrics
Exemple de réponse :
{ "names": [ "jvm.memory.used", "jvm.gc.pause", "system.cpu.usage", "system.memory.usage", "http.server.requests" ] }
Pour obtenir des détails sur une statistique spécifique :
GET http://localhost:8080/actuator/metrics/jvm.memory.used
Exemple de réponse :
{ "name": "jvm.memory.used", "description": "The amount of used memory", "baseUnit": "bytes", "measurements": [ { "statistic": "VALUE", "value": 5.1234567E7 } ], "availableTags": [ { "tag": "area", "values": [ "heap", "nonheap" ] }, { "tag": "id", "values": [ "PS Eden Space", "PS Survivor Space", "PS Old Gen", "Metaspace", "Compressed Class Space" ] } ] }
Le point de terminaison /actuator/env fournit des informations sur les propriétés de l'environnement :
GET http://localhost:8080/actuator/env
Exemple de réponse :
{ "activeProfiles": [], "propertySources": [ { "name": "systemProperties", "properties": { "java.runtime.name": { "value": "Java(TM) SE Runtime Environment" }, "java.vm.version": { "value": "25.181-b13" } } }, { "name": "systemEnvironment", "properties": { "PATH": { "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }, "HOME": { "value": "/root" } } } ] }
Le point de terminaison /actuator/info fournit des informations sur l'application :
GET http://localhost:8080/actuator/info
Pour personnaliser les informations, ajoutez des propriétés dans votre application.yml :
info: app: name: My Spring Boot Application description: This is a sample Spring Boot application version: 1.0.0
Par défaut, tous les points de terminaison Actuator sont accessibles sans authentification. Pour sécuriser ces points de terminaison, vous pouvez utiliser Spring Security. Ajoutez la dépendance Spring Security à votre pom.xml :
org.springframework.boot spring-boot-starter-security
Mettez à jour votre application.yml pour restreindre l'accès :
management: endpoints: web: exposure: include: "*" # Expose all endpoints endpoint: health: show-details: always # Show detailed health information spring: security: user: name: admin # Default username password: admin # Default password # Restrict actuator endpoints to authenticated users management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always security: enabled: true roles: ACTUATOR
Créez une classe de configuration de sécurité pour configurer la sécurité HTTP :
import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/actuator/**").hasRole("ACTUATOR") .anyRequest().authenticated() .and() .httpBasic(); } }
Avec cette configuration, seuls les utilisateurs authentifiés dotés du rôle ACTUATEUR peuvent accéder aux points de terminaison Actuator.
Vous pouvez créer des points de terminaison d'actionneur personnalisés pour exposer des informations supplémentaires ou des fonctionnalités spécifiques à votre application. Voici un exemple de création d'un point de terminaison personnalisé :
import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.stereotype.Component; @Endpoint(id = "custom") @Component public class CustomEndpoint { @ReadOperation public String customEndpoint() { return "Custom Actuator Endpoint"; } }
Accédez à votre point de terminaison personnalisé à :
GET http://localhost:8080/actuator/custom
Spring Boot Actuator fournit un ensemble d'outils robustes pour vous aider à surveiller et à gérer votre application. En tirant parti de ses points de terminaison intégrés et de la possibilité de créer des points de terminaison personnalisés, vous pouvez obtenir des informations précieuses sur les performances et la santé de votre application. Sécurisez ces points de terminaison avec Spring Security pour garantir que seuls les utilisateurs autorisés y ont accès, et vous disposerez d'une application prête pour la production, facile à gérer et à surveiller.
Actuator est un élément essentiel de toute application Spring Boot, vous permettant de garder le doigt sur le pouls de l'environnement d'exécution de votre application et de répondre rapidement aux problèmes dès qu'ils surviennent. Commencez à utiliser Spring Boot Actuator dès aujourd’hui pour améliorer l’observabilité et les capacités opérationnelles de votre application.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3