Spring Boot Actuator es un subproyecto de Spring Boot que facilita la monitorización y gestión de aplicaciones Spring Boot en ejecución. Permite supervisar la aplicación, recopilar datos sobre el tráfico, el estado de la base de datos y mucho más, sin necesidad de escribir código adicional.
Una vez configurado Spring Actuator en tu proyecto, tendrás acceso a una serie de endpoints para gestionar y monitorizar la aplicación. Si necesitas controles adicionales, puedes añadir nuevos endpoints personalizados.
Configuración de Actuator en Spring Boot
Para utilizar Actuator, simplemente añade la dependencia spring-boot-starter-actuator
a tu archivo pom.xml
(Maven) o build.gradle
(Gradle).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Después de añadir la dependencia y reiniciar la aplicación, Actuator estará activo.
Spring Boot Actuator proporciona endpoints para acceder a la información de la aplicación a través de HTTP.
Algunos endpoints importantes incluyen:
- /health: Ofrece información sobre el estado de la aplicación, como la conexión a la base de datos. Este endpoint no requiere autenticación por defecto.
- /info: Muestra información personalizada sobre la aplicación, como la versión y la descripción.
- /metrics: Proporciona métricas de la aplicación en tiempo real, como el uso de memoria y el número de hilos.
- /loggers: Muestra y permite modificar la configuración de logging de la aplicación.
La información detallada sobre el estado de la aplicación se obtiene de los beans que implementan la interfaz HealthIndicator
configurados en el contexto.
Por ejemplo, el endpoint /health
puede devolver información simple como:
{
"status": "UP"
}
Además de usar los endpoints predeterminados, puedes personalizarlos y crear nuevos. La personalización incluye modificar el id
, el estado enabled
(activar/desactivar) y sensitive
(sensibilidad – requiere autenticación o no) del endpoint.
Para crear un nuevo endpoint, debes implementar la interfaz Endpoint<T>
y definir la lógica de procesamiento para ese endpoint.
Spring Boot Actuator es compatible con diversas tecnologías, como Spring MVC y JMX. También se integra con Spring Security para proteger el acceso a los endpoints. Configurar la seguridad de Actuator es crucial para prevenir accesos no autorizados a información sensible de la aplicación.
La configuración de los endpoints se puede realizar a través de archivos properties o YAML. Por ejemplo, para cambiar el id del endpoint /beans
a /springbeans
y permitir el acceso sin autenticación:
endpoints.beans.id=springbeans
endpoints.beans.sensitive=false
endpoints.beans.enabled=true