Programación — no es solo escribir código y arreglar bugs. También es el monitoreo de aplicaciones en tiempo real, para entender qué está ralentizando el sistema, qué recursos están trabajando en sobrecarga y a dónde se van los preciados bytes de memoria en la JVM. Imagínate que eres el piloto de un avión y necesitas ver el cuadro de mandos de tu nave, si no es así volarás a ciegas. Y aquí llega Spring Boot Actuator! Es una herramienta que proporciona amplias capacidades para el monitoreo y la gestión de aplicaciones Spring Boot. Te permite:
- Rastrear el estado de tu aplicación.
- Obtener métricas clave (CPU, memoria, rendimiento de las requests).
- Comprobar las características operativas del sistema.
- Acceder a diagnósticos e información sobre el estado de la aplicación.
¿Cómo integrar Actuator en un proyecto Spring Boot?
Para empezar necesitas añadir la dependencia Actuator a tu proyecto. Spring Boot te permite habilitar herramientas listas para usar vía Maven o Gradle. Todo, como siempre, lo más simple posible.
Agregar la dependencia en Maven: Añade la siguiente dependencia en tu pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Agregar la dependencia en Gradle: Si usas build.gradle, añade:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
¡Listo! Ahora Actuator ya está integrado en tu aplicación.
Resumen de endpoints estándar
Spring Boot Actuator proporciona muchos endpoints listos para el monitoreo y la gestión de tu aplicación. Aquí tienes algunos de los más populares:
| Endpoint | Descripción |
|---|---|
/health |
Muestra el estado de la aplicación (si está sano o no) |
/info |
Muestra información sobre la aplicación, por ejemplo, versión, descripción |
/metrics |
Muestra métricas como CPU, memoria, tiempo de ejecución de requests |
/env |
Contiene propiedades del entorno (environment variables) |
/loggers |
Proporciona información sobre la configuración actual de logging |
/beans |
Imprime la lista de todos los beans registrados en tu contexto |
/threaddump |
Volcado del estado de los threads dentro de la JVM, que ayuda a encontrar bloqueos |
Ahora imagina: arrancas la aplicación, entras en http://localhost:8080/actuator/health, y allí te dice la palabra mágica UP. Eso significa que tu aplicación está funcionando. ¡Hurra!
Habilitar y configurar Actuator
Como todo en Spring Boot, Actuator se configura cómodamente. Para eso se usan los populares archivos de configuración: application.properties o application.yml.
Configurar la ruta base de los endpoints: por defecto todos los endpoints de Actuator están en la ruta /actuator. Pero, ¿y si quieres cambiarla, por ejemplo, para ocultarlos de ojos ajenos? Simplemente especifica una nueva ruta en application.properties:
management.endpoints.web.base-path=/management
Ahora los endpoints estarán disponibles en /management.
Habilitar y deshabilitar endpoints: La posibilidad de activar o desactivar endpoints concretos también es parte de la magia de Actuator. Por ejemplo:
management.endpoint.health.enabled=true
management.endpoint.beans.enabled=false
Así habilitas /health y deshabilitas /beans.
¿Qué endpoints están disponibles? Puedes configurar el acceso general (por defecto sólo algunos endpoints están expuestos):
management.endpoints.web.exposure.include=*
O permitir acceso sólo a 2-3 seleccionados:
management.endpoints.web.exposure.include=health,info
Esto es útil cuando quieres minimizar los riesgos de seguridad.
Ejemplo práctico breve
Vamos a habilitar Actuator y probar su funcionalidad en una app Spring Boot sencilla. Crearemos un REST API de ejemplo y añadiremos Actuator para monitorizarlo.
Paso 1: Añadimos la dependencia en pom.xml (o build.gradle):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Paso 2: Configuramos el archivo application.properties:
management.endpoints.web.exposure.include=health,info,metrics
management.endpoint.health.show-details=always
Paso 3: Creamos el REST API: Crearemos el típico HelloController:
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "¡Hola, Spring Boot Actuator!";
}
}
Paso 4: Arrancamos la aplicación: Después de arrancar la aplicación, abre el navegador o Postman y accede a los endpoints:
http://localhost:8080/actuator/health— estado de la aplicación.http://localhost:8080/actuator/info— información sobre la aplicación.http://localhost:8080/actuator/metrics— métricas de CPU, memoria y requests.
Resultados:
En /health verás la siguiente magia:
{
"status": "UP",
"details": {
"diskSpace": {
"status": "UP",
"details": {
"total": 500000000000,
"free": 400000000000,
"threshold": 10485760
}
}
}
}
Eso significa que tu aplicación está funcionando y tu disco todavía no está lleno de gatitos.
Características clave de Actuator
- Facilidad de integración: basta con añadir una dependencia.
- Flexibilidad de configuración: puedes habilitar sólo los endpoints que necesites.
- Extensibilidad: es fácil añadir métricas personalizadas.
- Diagnóstico efectivo: ayuda a entender rápido por qué la aplicación está "fallando".
GO TO FULL VERSION