Guía de Actuators más importantes en Spring Boot
En el post de hoy vamos a revisar cuáles son los principales actuators que podemos incluir en un proyecto Spring Boot para dejar correctamente monitorizados nuestros microservicios. Los actuators son una herramienta esencial para tener visibilidad en tiempo real del comportamiento de nuestras aplicaciones y permiten mejorar la operación y mantenimiento de sistemas distribuidos.
A lo largo de este post te mostraré qué es un actuator, cuáles son los más importantes, y te explicaré brevemente para qué sirve cada uno. Además, te daré recomendaciones sobre cuáles activar según tu entorno (desarrollo, staging, producción). Vamos con ello.
¿Qué son los Actuators de Spring Boot?
Los Actuators son un conjunto de endpoints que Spring Boot pone a nuestra disposición para monitorizar y gestionar aplicaciones en tiempo real. Nos permiten conocer el estado del microservicio, sus rutas expuestas, configuraciones internas, carga de trabajo, estado de la JVM, y un sinfín de información útil para operaciones y mantenimiento.
Gracias a ellos, un equipo de desarrollo o DevOps puede anticiparse a errores, verificar configuraciones tras un despliegue, detectar cuellos de botella o comprobar que todos los beans y rutas están funcionando como se espera. Además, se integran de forma sencilla con herramientas de observabilidad como Prometheus, Grafana o ELK Stack.
Por defecto, el actuator /health es el único que se encuentra habilitado. Los demás deben ser activados mediante configuración en el fichero application.properties o en el fichero application.yml. Vamos ahora a ver cuáles son los más importantes.
📊 Tabla de los Actuators principales
✅Descripción del endpoint de cada Actuator
➕ /health
Devuelve el estado de la aplicación: UP, DOWN, OUT_OF_SERVICE o UNKNOWN. Esencial para "health checks" automáticos en Kubernetes, AWS o cualquier orquestador. Permite extenderse con indicadores personalizados para verificar dependencias críticas (BBDD, colas, APIs externas).
➕ /info
Endpoint para mostrar metadatos de la app: nombre, versión, variables personalizadas. Muy usado en dashboards y CI/CD (Continuous Integration / Continuous Deployment). Puedes configurar datos dinámicos y mostrar información de cada build.
➕ /env
Devuelve las propiedades de configuración activas, incluidas las de entorno. Ideal para verificar el entorno tras un despliegue. También muestra de dónde proviene cada propiedad (profile, config server...).
➕ /beans
Lista todos los Beans que Spring ha cargado, su tipo y dependencias. Este endpoint es clave para depuración avanzada o detección de beans duplicados. Muy útil en proyectos grandes con autoconfiguración.
➕ /conditions
Muestra el resultado de las condiciones evaluadas en la configuración (éxito o fallo de @ConditionalOn...). Ayuda a entender por qué ciertas configuraciones o beans no se han cargado. Muy valioso en troubleshooting.
➕ /mappings
Enumera todas las rutas HTTP disponibles en la app (también incluye las rutas automáticas). Ideal para validar configuración de APIs. Muy útil en arquitecturas REST complejas.
➕ /loggers
Permite ver los niveles de log actuales y cambiarlos en caliente, sin reiniciar. Muy útil en entorno productivo para depurar problemas. Puedes cambiar el nivel de log por paquete o clase.
➕ /metrics
Proporciona una vista completa de métricas: uso de CPU, GC, threads, peticiones HTTP... Muy útil con Prometheus/Grafana. También permite definir tus propias métricas personalizadas.
➕ /configprops
Expone los valores de las propiedades anotadas con @ConfigurationProperties. Perfecto para validar configuraciones cargadas. Ayuda a comprobar que los valores del Config Server se han aplicado correctamente.
➕ /httpexchanges
Histórico de las peticiones HTTP entrantes en el microservicio, con detalles de request/response. Muy valioso en debugging de API REST. Se puede combinar con un repositorio in-memory para análisis temporal.
➕ /gateway
Endpoint específico para ver configuración de rutas y filtros en apps con Spring Cloud Gateway. Es fundamental para comprobar rutas y prioridades. Resulta muy útil sobre todo cuando se usan filtros dinámicos en la aplicación.
➕ /threaddump
Genera un dump con el estado de todos los hilos JVM, ideal para diagnóstico de deadlocks. Muy útil en problemas de concurrencia. Puede integrarse con herramientas de tracing.
➕ /prometheus
Exporta todas las métricas en formato Prometheus, listo para ser scrapeado. Integración directa con Grafana. Es la base para la observabilidad en entornos Cloud.
➕ /caches
Informa sobre el estado de los caches activos: nombres, contenido, estadísticas. Permite borrar entradas específicas vía API. Muy práctico para problemas de inconsistencias en cache.
➕ /scheduledtasks
Lista las tareas programadas (@Scheduled), indicando su configuración y estado. Ayuda a validar planificaciones periódicas. Muy útil para revisar tareas en background.
➕ /liquibase o /flyway
Estado actual de las migraciones de base de datos aplicadas. Permite validar si el esquema está al día. Resulta ideal en integraciones CI/CD.
➕ /auditevents
Muestra eventos de auditoría generados por la app (por ejemplo: logins). Este endpoint es útil para trazabilidad y cumplimiento. Puede integrarse con sistemas de auditoría centralizados.
Conclusión
Dominar los Actuators de Spring Boot es lo que permite tener un control total sobre la operación de tus microservicios. Si estás desplegando en entornos cloud (AWS, Azure, Kubernetes) o trabajando con arquitecturas distribuidas, estos endpoints son imprescindibles.
Recomendación: empieza habilitando /health, /info, /metrics, /prometheus y /loggers, y ve ampliando según las necesidades de tu equipo DevOps.
¡Nos vemos en el siguiente post!
Saludos.







Comentarios
Publicar un comentario