Agregar Actuator + Grafana + Prometheus a Spring Boot
En este post veremos como configurar Actuator, Prometheus y Grafana para moitorear una aplicacion realizada en Spring Boot. Lo interesante de estas herramientas, es que puedes obtener datos para monitorear un backend sin necesidad de escribir codigo.
Después de implementar cualquier aplicación en producción, nuestra principal preocupación es brindar la mejor experiencia de usuario al usuario final. Para esa aplicación, el monitoreo y las alertas es un aspecto importante. Cuando hablamos de monitoreo y alerta, grafana entra en acción.
¿Que es grafana?
Grafana es una herramienta muy personalizable, para monitorear cualquier aplicación. La configuración de Grafana es muy sencilla. Y es compatible con múltiples fuentes de datos, es decirm que podemos añadir multiples datasources, asi como tambien, crear multiples tableros o vistas de monitoreo.
Agregar depedencias a nuestro proyecto de Spring Boot
Ahora vamos a agregar la depdendencia de actuator y de prometheus. El proyecto que usaremos para este tutorial es un CRUD de Spring Boot, el cual puedes encontrar en el siguiente link:
Gradle
Vamos al archivo build.gradle y en la seccion de dependencias, agregamos las siguientes dependencias.
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '2.6.1'
// https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus
implementation group: 'io.micrometer', name: 'micrometer-registry-prometheus', version: '1.8.1'
Maven
En el caso de que tengas un proyecto maven, debes ir al archivo pom.xml y en la seccion de dependencias, agregar las siguientes dos dependencias.
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.8.1</version>
</dependency>
Configurando propiedades den Spring Boot
Ahora en el archivo de propiedades application.properties agregamos las siguientes dos propiedades.
management.endpoints.web.exposure.include=*
management.endpoints.health.include.show-details=always
Descargar prometheus
Una vez tenemos nuestro Spring Boot configurado, ahora vamos a descargar prometheus. Vamos a la web oficial de descargar el software.
Nota: recomendable ver el video al final de este post para tener una guia clara
Configurar prometheous
Una vez descargado y descomprimido el archivo, obtendremos algo parecido a estos archivos. Abrimos el archivo subrayado en rojo y lo editamos con editor de codigo o texto.
La configuracion de Prometheus es muy sencilla, solo tenemos que editar el archivo prometheus.yml y al final, agregar estas dos lineas:
- job_name: "spring-backend"
metrics_path: '/actuator/prometheus'
scrape_interval: 1s
static_configs:
- targets: ["localhost:8080"]
El archivo completo de configuracion quedaria algo similar a esto:
# my global config
global:
scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: "spring-backend"
metrics_path: '/actuator/prometheus'
scrape_interval: 1s
static_configs:
- targets: ["localhost:8080"]
Ejecutar prometheus
Para ejecutar prometheus vamos a carpeta de prometheus, y ejecutamos con poweshell o cmd el archivo prometheus.exe
Ejecutar el siguiente codigo en una terminal de powershell o cmd desde la raiz
.\prometheus.exe
Descargar grafana
Grafana es gratis de descargar. Lo puedes descargar para cualquier sistema operativo.
Ejecutar grafana
Para ejecuta gafana, entramos a la carpeta bin, abrimos una consola de poweshell o cmd dentro de la carpeta descomprimida y ejecutamos el siguiente comando:
.\grafana-server.exe
Luego vamos a http://localhost:3000 y ahi veremos el login de grafana, el cual para ingresar te pedira un usuario y contraseña, el cual es admin de usuario y admin de contraseña.
Video-tutorial completo en español
Aqui te dejo un video tutorial completo en español con el paso a paso para configurar grafana, prometheus y actuator
Si quieres conocer otros artículos parecidos a Agregar Actuator + Grafana + Prometheus a Spring Boot puedes visitar la categoría Java.
Entradas relacionadas