Aller au contenu

Module 9 – Actuator & Monitoring (support “oral” détaillé)

1. Le problème que ce module résout

Imaginez : votre API tourne chez un client. Il vous dit :

“Ça marche pas.”

Question : Qu’est-ce qui ne marche pas ?


2. Utliser Actuator : c’est quoi ?

Actuator ajoute des endpoints techniques. Ce ne sont pas des features métier (pas des “chien”, pas des “race”).

Ce sont des capteurs :


3. Installer Actuator

Maven

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Redémarrer l’application Spring Boot…


4. Health check : le plus important

Appel

curl http://localhost:8080/actuator/health

Réponse

Pourquoi c’est crucial ?


5. Exposer seulement le nécessaire

Par défaut, Actuator n’expose pas tout (bonne chose). On choisit.

management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics,prometheus
  endpoint:
    health:
      show-details: when_authorized

6. Endpoint info : “qui tourne ?”

On veut parfois savoir :

Exemple (application.yml) :

management:
  info:
    env:
      enabled: true
info:
  app:
    name: wouaf-wouaf
    version: 1.0.0

Puis :

curl http://localhost:8080/actuator/info

7. Endpoint metrics : “combien, à quelle vitesse ?”

Exemple :

curl "http://localhost:8080/actuator/metrics/http.server.requests"

Vous verrez :


8. HealthIndicator personnalisé (métier)

Vous voulez savoir si “le module concours” répond ?

@Component
public class ConcoursHealthIndicator implements HealthIndicator {

  private final ConcoursRepository repo;

  public ConcoursHealthIndicator(ConcoursRepository repo) {
    this.repo = repo;
  }

  @Override
  public Health health() {
    try {
      repo.count(); // appel simple pour vérifier DB + table
      return Health.up().withDetail("concours", "OK").build();
    } catch (Exception e) {
      return Health.down().withDetail("concours", "KO").build();
    }
  }
}

9. Sécuriser Actuator (obligatoire)

Règle pédagogique :

Sinon vous exposez des infos sensibles.


10. UML : diagramme de séquence “supervision”

Outil de monitoring → /actuator/health → Spring Boot → DB

11. A faire

  1. Ajouter un HealthIndicator “database”.
  2. Vérifier que /actuator/beans n’est pas exposé en prod.