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.

  1. 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.

  1. Configuració de Prometheus

Instal·lació de Prometheus

  1. Descarrega Prometheus des del lloc oficial.
  2. Descomprimeix l'arxiu descarregat.
  3. 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']

  1. 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:

http://localhost:8080/actuator/prometheus

  1. Configuració de Grafana

Instal·lació de Grafana

  1. Descarrega Grafana des del lloc oficial.
  2. Descomprimeix l'arxiu descarregat.
  3. Executa Grafana:
    ./bin/grafana-server
    

Configuració de la font de dades Prometheus

  1. Accediu a la interfície web de Grafana (per defecte a http://localhost:3000).
  2. Inicieu sessió amb les credencials per defecte (usuari: admin, contrasenya: admin).
  3. Aneu a Configuration > Data Sources.
  4. Afegiu una nova font de dades i seleccioneu Prometheus.
  5. Configureu l'URL de Prometheus (per defecte http://localhost:9090).

Creació de panells de Grafana

  1. Aneu a Create > Dashboard.
  2. Afegiu un nou panell i seleccioneu la font de dades de Prometheus.
  3. Creeu les vostres consultes per visualitzar les mètriques desitjades.

  1. Exercici pràctic

Objectiu

Configurar una aplicació Spring Boot per recollir mètriques amb Prometheus i visualitzar-les amb Grafana.

Passos

  1. Creeu una aplicació Spring Boot amb les dependències necessàries.
  2. Configureu l'Actuator per exposar les mètriques de Prometheus.
  3. Instal·leu i configureu Prometheus per recollir les mètriques de l'aplicació.
  4. Instal·leu i configureu Grafana per visualitzar les mètriques recollides per Prometheus.
  5. Creeu un panell a Grafana per visualitzar les mètriques de l'aplicació.

Solució

  1. 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>
    
  2. Configuració de l'Actuator:

    # application.properties
    management.endpoints.web.exposure.include=prometheus
    management.metrics.export.prometheus.enabled=true
    
  3. Configuració de Prometheus:

    # prometheus.yml
    global:
      scrape_interval: 15s
    
    scrape_configs:
      - job_name: 'spring-boot-app'
        static_configs:
          - targets: ['localhost:8080']
    
  4. Configuració de Grafana:

    • Afegiu la font de dades de Prometheus a Grafana.
    • Creeu un panell amb les mètriques desitjades.

  1. 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

Mòdul 2: Conceptes bàsics de Spring Boot

Mòdul 3: Construint serveis web RESTful

Mòdul 4: Accés a dades amb Spring Boot

Mòdul 5: Seguretat a Spring Boot

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ó

Mòdul 10: Millors pràctiques i consells

© Copyright 2024. Tots els drets reservats