Aller au contenu

Module 17 – Metrics Prometheus/Grafana (cours complet)

1. Pourquoi des métriques ?

Logs = “ce qui s’est passé”. Métriques = “ce qui se passe en continu”.

Exemples utiles :

Sans métriques : vous réagissez trop tard.


2. Micrometer : le standard Spring Boot

Spring Boot expose des métriques via Micrometer. On ajoute un “registry” Prometheus.

<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

3. Exposer /actuator/prometheus

management:
  endpoints:
    web:
      exposure:
        include: health,metrics,prometheus

Puis :

curl http://localhost:8080/actuator/prometheus

Vous verrez des milliers de lignes : c’est normal (système + HTTP + JVM).


4. Métrique métier personnalisée

Objectif : compter les inscriptions.

@Service
public class InscriptionService {

  private final Counter inscriptionsCounter;

  public InscriptionService(MeterRegistry registry, ...) {
    this.inscriptionsCounter = Counter.builder("concours_inscriptions_total")
      .description("Nombre total d'inscriptions")
      .register(registry);
  }

  @Transactional
  public InscriptionDto inscrire(...) {
    ...
    inscriptionsCounter.increment();
    ...
  }
}

5. Pourquoi c’est puissant ?

Parce que vous pouvez afficher un graphe :


6. Grafana (côté idée)

Même si vous n’installez pas tout en cours, vous devez comprendre :


7. Mini-exercices

  1. Ajouter un compteur “chiens créés”.
  2. Ajouter un timer sur inscrire() (latence).