CodeGym /Cursos /Módulo 5. Spring /Lección 111: Introducción a Spring Boot Actuator

Lección 111: Introducción a Spring Boot Actuator

Módulo 5. Spring
Nivel 19 , Lección 0
Disponible

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

  1. Facilidad de integración: basta con añadir una dependencia.
  2. Flexibilidad de configuración: puedes habilitar sólo los endpoints que necesites.
  3. Extensibilidad: es fácil añadir métricas personalizadas.
  4. Diagnóstico efectivo: ayuda a entender rápido por qué la aplicación está "fallando".
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION