En aquesta secció, aprendrem com monitoritzar les nostres aplicacions Spring Boot utilitzant Prometheus i Grafana. Aquestes eines ens permeten recollir, emmagatzemar i visualitzar dades de monitorització de manera eficient.
- Introducció a Prometheus i Grafana
Què és Prometheus?
Prometheus és un sistema de monitorització i alerta de codi obert dissenyat per recollir mètriques de diverses fonts, emmagatzemar-les en una base de dades de sèries temporals i permetre la consulta d'aquestes dades.
Què és Grafana?
Grafana és una plataforma de codi obert per a la visualització i anàlisi de dades de monitorització. Permet crear panells interactius i personalitzats per visualitzar les mètriques recollides per Prometheus.
- Configuració de Prometheus
Instal·lació de Prometheus
- Descarrega Prometheus des del lloc oficial.
- Descomprimeix l'arxiu descarregat.
- Executa Prometheus:
./prometheus --config.file=prometheus.yml
Configuració del fitxer prometheus.yml
El fitxer prometheus.yml
és el fitxer de configuració principal de Prometheus. Aquí és on definim els objectius de monitorització.
Exemple de configuració bàsica:
global: scrape_interval: 15s scrape_configs: - job_name: 'spring-boot-app' static_configs: - targets: ['localhost:8080']
- Integració de Spring Boot amb Prometheus
Dependències necessàries
Afegiu les següents dependències al vostre fitxer pom.xml
per habilitar les mètriques de Prometheus a la vostra aplicació Spring Boot:
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
Configuració de l'Actuator
Habiliteu l'endpoint de Prometheus a application.properties
:
management.endpoints.web.exposure.include=prometheus management.metrics.export.prometheus.enabled=true
Verificació de l'endpoint
Després de configurar l'Actuator, podeu accedir a les mètriques de Prometheus a través de l'endpoint /actuator/prometheus
:
- Configuració de Grafana
Instal·lació de Grafana
- Descarrega Grafana des del lloc oficial.
- Descomprimeix l'arxiu descarregat.
- Executa Grafana:
./bin/grafana-server
Configuració de la font de dades Prometheus
- Accediu a la interfície web de Grafana (per defecte a
http://localhost:3000
). - Inicieu sessió amb les credencials per defecte (usuari:
admin
, contrasenya:admin
). - Aneu a Configuration > Data Sources.
- Afegiu una nova font de dades i seleccioneu Prometheus.
- Configureu l'URL de Prometheus (per defecte
http://localhost:9090
).
Creació de panells de Grafana
- Aneu a Create > Dashboard.
- Afegiu un nou panell i seleccioneu la font de dades de Prometheus.
- Creeu les vostres consultes per visualitzar les mètriques desitjades.
- Exercici pràctic
Objectiu
Configurar una aplicació Spring Boot per recollir mètriques amb Prometheus i visualitzar-les amb Grafana.
Passos
- Creeu una aplicació Spring Boot amb les dependències necessàries.
- Configureu l'Actuator per exposar les mètriques de Prometheus.
- Instal·leu i configureu Prometheus per recollir les mètriques de l'aplicació.
- Instal·leu i configureu Grafana per visualitzar les mètriques recollides per Prometheus.
- Creeu un panell a Grafana per visualitzar les mètriques de l'aplicació.
Solució
-
Aplicació Spring Boot:
<!-- pom.xml --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
-
Configuració de l'Actuator:
# application.properties management.endpoints.web.exposure.include=prometheus management.metrics.export.prometheus.enabled=true
-
Configuració de Prometheus:
# prometheus.yml global: scrape_interval: 15s scrape_configs: - job_name: 'spring-boot-app' static_configs: - targets: ['localhost:8080']
-
Configuració de Grafana:
- Afegiu la font de dades de Prometheus a Grafana.
- Creeu un panell amb les mètriques desitjades.
- Conclusió
En aquesta secció, hem après a configurar Prometheus per recollir mètriques d'una aplicació Spring Boot i a utilitzar Grafana per visualitzar aquestes mètriques. Aquestes eines són essencials per monitoritzar el rendiment i la salut de les nostres aplicacions en producció.
Curs de Spring Boot
Mòdul 1: Introducció a Spring Boot
- Què és Spring Boot?
- Configuració del teu entorn de desenvolupament
- Creant la teva primera aplicació Spring Boot
- Entenent l'estructura del projecte Spring Boot
Mòdul 2: Conceptes bàsics de Spring Boot
- Anotacions de Spring Boot
- Injecció de dependències a Spring Boot
- Configuració de Spring Boot
- Propietats de Spring Boot
Mòdul 3: Construint serveis web RESTful
- Introducció als serveis web RESTful
- Creant controladors REST
- Gestionant mètodes HTTP
- Gestió d'excepcions en REST
Mòdul 4: Accés a dades amb Spring Boot
- Introducció a Spring Data JPA
- Configuració de fonts de dades
- Creant entitats JPA
- Utilitzant repositoris de Spring Data
- Mètodes de consulta a Spring Data JPA
Mòdul 5: Seguretat a Spring Boot
- Introducció a Spring Security
- Configuració de Spring Security
- Autenticació i autorització d'usuaris
- Implementant autenticació JWT
Mòdul 6: Proves a Spring Boot
Mòdul 7: Funcions avançades de Spring Boot
Mòdul 8: Desplegant aplicacions Spring Boot
Mòdul 9: Rendiment i monitorització
- Optimització del rendiment
- Monitorització amb Spring Boot Actuator
- Utilitzant Prometheus i Grafana
- Gestió de registres i logs