Guía de uso de Spring Boot Actuators 

Un Actuator consiste en funcionalidades ya predefinidas utilizadas en producción por tu aplicación. Permite monitorizar la aplicación, recopilación de métricas, comprender el tráfico o entender el estado de nuestra base de datos de manera trivial.

El principal beneficio de esta librería es que se puede obtener herramientas a nivel de producción sin tener que implementar las funcionalidades por ti mismos.

Un Actuator se usa principalmente para exponer información operativa sobre la aplicación una vez está en ejecución: estado, métricas, información, volcado, entorno, etc. Para su uso, utiliza puntos finales HTTP o beans JMX para permitir la interacción con el Actuator. En el caso de esta guía, se implementa mediante puntos finales HTTP.

Una vez instaurada la dependencia en el proyecto, varios puntos finales están disponibles para ser usados. A continuación vamos a explicar como implantarlo y utilizarlo en tus proyectos.

¿Cómo lo implemento?

En primer lugar, hay que añadir las dependencia en nuestro proyecto Spring Boot: 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-actuator</artifactId> 
    <version>2.2.6.RELEASE</version> 
</dependency> 

Con esto ya tienes todas la funcionalidades disponibles en el momento en el que lances tu aplicación. 

Una vez lanzada, se generarán automáticamente todos los endpoints bajo la ruta «/{aplicación}/actuator»». 

Extensión de endpoints predefinidos

Una de las funcionalidades que ofrece Spring Boot Actuators es la posibilidad de extender los endpoints predefinidos que ya vienen ofrecidos por la propia librería.  

Para ello, se puede seguir este ejemplo en el que se extiende el endpoint  «/health»: 

@Component 
public class HealthCheck implements HealthIndicator { 

@Override 
    public Health health() { 

//Llamadas a diferentes métodos que nos devuelven el estado de nuestros servicios 
     Boolean genStatus=isRunningServiceGenerator(); 
     Boolean libStatus=isRunningServiceLibraries(); 
     Boolean modStatus=isRunningServiceModules(); 
 
     HashMap<String,String> details=new HashMap<String,String> (); 
     details.put("Libraries Service", libMsg); 
     details.put("Modules Service", modMsg); 
     details.put("Generator Service", genMsg); 

//En el caso de que alguno de nuestros servicios no esté en un estado correcto, se indicará que el servicio no está correcto 
        if (!genStatus || !libStatus || !modStatus)					 
               return Health.down().withDetails(details).build(); 

     return Health.up().withDetails(details).build(); 
    } 
} 

Creación de un nuevo endpoint

Otra de las posibilidades que se nos ofrece con los Actuators es la creación de endpoints diseñados y personalizados por los usuarios.

Para ello se puede seguir este ejemplo:

@Component 
public class CustomEndpoint implements Endpoint<List<String>> { 
     
    @Override 
    public String getId() { 
       return "customEndpoint"; 
    } 
  
    @Override 
    public boolean isEnabled() { 
        return true; 
    } 
  
    @Override 
    public boolean isSensitive() { 
        return true; 
    } 
  
    @Override 
    public List<String> invoke() { 

        // Custom logic to build the output 
        List<String> messages = new ArrayList<String>(); 

        messages.add("This is message 1"); 
        messages.add("This is message 2"); 

        return messages; 

    } 

} 

Configuración en Rancher

Dado que los Actuators te ofrecen información sobre el estado en el que se encuentran tus aplicaciones, puedes usarla para gestionar el control de ellas

Dentro de Rancher, al desplegar o actualizar nuestros servicios, existe una pestaña llamada «Health Check» con la cual se pueden establecer comprobaciones de estado de la aplicación para que, en caso de tener muchos errores, pueda reiniciarse automáticamente o marcarse para indicar a los desarrolladores que no se encuentra en un estado óptimo. 

Utilizando el endpoint generado por Spring Boot Actuators, puedes establecer una política como la siguiente: 


Como puedes ver, configurar Spring Boot Actuators es bastante rápido y sencillo, y las posibilidades que aporta son muchas.

Esperamos que os haya parecido interesante y, si tenéis cualquier duda, no dudéis en dejarnos un comentario.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.