Spring Actuator (WIP)
1. Introduccion
Spring Boot proporciona utilidades para la monitorizacion del estado de una aplicacion Spring Boot, por ejemplo conocer el estado de memoria, metricas, monitorizacion , consulta de valores de runtime, estado de servicios, etc..
Estas utilidades pueden tener distintas implementaciones y podemos acceder a ellas, a traves de endpoints web, mxbeans, java agents, etc…
Por norma general la mayoria de herramientas de monitorizacion acceden a esta informacion a traves de la interfaz web.
2.Configuracion
Como es natural en la filosofia Spring-Boot, basta con añadir el starter que se ocupara de calcular y ofrecer esos valores al classpath de nuestra aplicacion:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Y ahora solo bastará con indicar cuales son los valores que nos interesa servir y que serán consumidos por nuestras herramientas de monitorizacion:
Un ejemplo seria este:
management:
endpoint:
metrics:
enabled: true
prometheus:
enabled: true
env:
show-values: ALWAYS
metrics:
export:
prometheus:
enabled: true
endpoints:
web:
exposure:
include: [ info, env, health, metrics, prometheus ]
management.endpoints.web.exposure: indica cuales endpoints van a poder consultarse a traves de la interfaz http.
management.endpoints.{}: configura las properties de cada actuator.
3.Actuator /env
Nos ofrece informacion de los valores de todas las properties de nuestra aplicacion en runtime.
Si nos fijamos hemos configurado el comportamiento de ese actuator para que retorne siempre el valor de las variables sin codificar y asi poder consultarlo:
Para ello basta con visitar el endpoint /actuator/env y obtendremos el listado:Los valores que no puedas ver o quieras consultar, con los que trabaja una version de SpringBoot por defecto los puedes consultar en su pagina oficial
4.Actuator /health
Los distintos servicios usados o externos(clientes de bbdd, kafka-clients, etc..) pueden implementar una manera de indicar su salud (si estan caidos, si necesitan reinicio, si estan bien y funcionan con normalidad), a esto se le llama HealtCheck.
Spring boot es capaz de reconocer todos los servicios health check de los componentes dentro de la aplicacion y monitorizarlos.
Si todos los healthcheck responden con OK, cuando visitemos el endpoint /actuator/health este nos respondera con un “UP”.
Si por el contrario alguno indica anomalia y su implementacion responde con DOWN, condicionara la respuesta final del actuator indicando un “DOWN”, es decir con que alguno de los servicios no esté funcionando correctamente, el endpoint nos indicara un “DOWN”.
4.Actuator /info (WIP)
Explicar que info da el /info y como customizarlo con el plugin
5.Actuator /custom (WIP)
Indicar como crear un propio actuator