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

 
Aunque es complicado dar una lista precisa de cuáles son los Actuators principales, en líneas generales podríamos decir que los más importantes serían los incluidos en la siguiente tabla. 
 
 
 
 
 

✅Descripción del endpoint de cada Actuator

 
A continuación, vamos a dar una descripción breve de la utilidad de los endpoints de cada uno de los Actuators que hemos recogido en la tabla anterior.
 

/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

Entradas populares de este blog

Componentes y Ventanas de Java Swing

Configurar Apache Tomcat en Eclipse

Creación de Webservice SOAP mediante Anotaciones