Spring Boot Actuator es un subproyecto de Spring Boot que proporciona funciones listas para producción para ayudarlo a monitorear y administrar su aplicación. Ofrece un conjunto de puntos finales integrados que le permiten obtener información sobre el estado, las métricas y el entorno de su aplicación, así como controlarla dinámicamente.
Spring Boot Actuator proporciona varios puntos finales listos para usar que se pueden usar para monitorear e interactuar con su aplicación. Se puede acceder a estos puntos finales a través de HTTP, JMX o mediante Spring Boot Admin.
Para usar Actuator en su aplicación Spring Boot, debe agregar la dependencia de Actuator a su archivo pom.xml:
org.springframework.boot spring-boot-starter-actuator
Si estás usando Gradle, agrega lo siguiente a tu archivo build.gradle:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
De forma predeterminada, solo unos pocos puntos finales están habilitados. Puede habilitar puntos finales adicionales en su archivo application.yml:
management: endpoints: web: exposure: include: "*" # This exposes all available endpoints endpoint: health: show-details: always # Show detailed health information
Una vez configurado Actuator, puede acceder a los distintos puntos finales que proporciona. Estos son algunos puntos finales de uso común:
El punto final /actuator/health proporciona información sobre el estado de su aplicación:
GET http://localhost:8080/actuator/health
Ejemplo de respuesta:
{ "status": "UP", "components": { "db": { "status": "UP", "details": { "database": "H2", "result": 1 } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 16989374464, "threshold": 10485760, "exists": true } } } }
El punto final /actuator/metrics proporciona varias métricas relacionadas con su aplicación:
GET http://localhost:8080/actuator/metrics
Ejemplo de respuesta:
{ "names": [ "jvm.memory.used", "jvm.gc.pause", "system.cpu.usage", "system.memory.usage", "http.server.requests" ] }
Para obtener detalles de una métrica específica:
GET http://localhost:8080/actuator/metrics/jvm.memory.used
Ejemplo de respuesta:
{ "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" ] } ] }
El punto final /actuator/env proporciona información sobre las propiedades del entorno:
GET http://localhost:8080/actuator/env
Ejemplo de respuesta:
{ "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" } } } ] }
El punto final /actuator/info proporciona información sobre la aplicación:
GET http://localhost:8080/actuator/info
Para personalizar la información, agregue propiedades en su application.yml:
info: app: name: My Spring Boot Application description: This is a sample Spring Boot application version: 1.0.0
De forma predeterminada, se puede acceder a todos los puntos finales del Actuator sin autenticación. Para proteger estos puntos finales, puede utilizar Spring Security. Agregue la dependencia de Spring Security a su pom.xml:
org.springframework.boot spring-boot-starter-security
Actualiza tu archivo application.yml para restringir el acceso:
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
Crear una clase de configuración de seguridad para configurar la seguridad 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(); } }
Con esta configuración, solo los usuarios autenticados con el rol de ACTUADOR pueden acceder a los puntos finales del Actuador.
Puede crear puntos finales de Actuator personalizados para exponer información adicional o funcionalidad específica de su aplicación. A continuación se muestra un ejemplo de cómo crear un punto final personalizado:
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"; } }
Acceda a su punto final personalizado en:
GET http://localhost:8080/actuator/custom
Spring Boot Actuator proporciona un sólido conjunto de herramientas para ayudarlo a monitorear y administrar su aplicación. Al aprovechar sus puntos finales integrados y la capacidad de crear puntos finales personalizados, puede obtener información valiosa sobre el rendimiento y el estado de su aplicación. Proteja estos puntos finales con Spring Security para garantizar que solo los usuarios autorizados tengan acceso y tendrá una aplicación lista para producción que sea fácil de administrar y monitorear.
Actuator es una parte esencial de cualquier aplicación Spring Boot, lo que le permite estar al tanto del entorno de ejecución de su aplicación y responder rápidamente a los problemas que surjan. Comience a utilizar Spring Boot Actuator hoy para mejorar la observabilidad y las capacidades operativas de su aplicación.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3