Spring Boot Admin, una forma simple de saber: ¿Qué pasa con nuestros microservicios ?

Spring Boot Admin, un proyecto que si bien podría profundizar más en el manejo de las méticras ha evolucionado para utilizar toda la información que Actuator nos ofrece y se convierte en una solución rápida y efectiva para ejecutar tareas de monitoreo.

Un aspecto importante cuando desarrollamos sistemas basados en arquitecturas de microservicios es mantener un monitoreo constante de todos los componentes de nuestro sistema. Esto nos permite un respuesta rápida ante fallos que pueden hacer colapsar por completo nuestros servicios al cliente.

Para llevar a cabo esta tarea hoy te porpongo las bondades de Spring Boot Admin, un proyecto que si bien podría profundizar más en el procesamiento de las métricas ha evolucionado para utilizar toda la información que Actuator nos ofrece y se convierte en una solución rápida y efectiva para ejecutar tareas de monitoreo.

Para integrar Spring Boot Admin a nuestro entorno de microservicios lo primero que debemos hacer es crear un nuevo microservicio y añadir la siguiente dependencia:

		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
		</dependency>

El próximo paso consiste en añadir la anotación @EnableAdminServer lo que nos permite habilitar nuestro servidor de administración.

@SpringBootApplication
@EnableAdminServer
public class AdminApplication {
	public static void main(String[] args) {
		SpringApplication.run(AdminApplication.class, args);
	}
}

Creado el servidor de administración procedemos a configurar nuestros mocroservicios para que sean registrados en este servidor, para ello añadimos la siguiente dependencia en cada microservicio:

	<dependency>
		<groupId>de.codecentric</groupId>
		<artifactId>spring-boot-admin-starter-client</artifactId>
		<version>2.3.1</version>
	</dependency>

El próximo paso sería configurar en cada servicio la la propiedad que nos permite enlazarlos con el servidor de administración, para ello vamos al application.properties y definimos la siguiente propiedad:

spring.boot.admin.client.url=http://localhost:8084

Es importante tener en cuenta que la dirección que se pasa como valor es la url de nuestro servidor de administración.

Con las configuraciones antes ejecutadas ya tenemos listo nuestro entorno de monitoreo que nos permite el acceso a métricas, estadísticas y utilización de recursos de cada microservicio.

Algo imporante que debemos aclarar es que es imprescindible tener configurado Actuator en nuestros microservicios, sino el proceso de monitoreo no funcionaría ya que Spring Boot Admin recolecta las métricas extraidas de los reportes de Actuator. Si nunca has trabajado con Actuator aquí te dejo la dependencia para su integración:

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

Para poder acceder a todos los endpoints de Actuator definimos la siguiente propiedad en nuestro archivo application.properties:

management.endpoints.web.exposure.include=*

Espero que encuentres utilidad en el artículo y como siempre te digo, nunca dejes de aprender.