Aller au contenu

Supervision

Indicateur Objectif
Latence d’un appel moteur p99 < 30 ms (< 10 ms de calcul)
Débit de référence 1 500 tickets/s en pointe (3 000 à 4 500 appels/s)
Perte de données maximale (RPO) 1 minute
Remise en service (RTO) 15 minutes

Chaque service expose :

  • /healthz : le processus vit ;
  • /readyz : prêt à servir (base joignable, offres chargées) ; renvoie 503 pendant un drainage ;
  • /metrics : métriques Prometheus.

Moteur : port de management (47501 pour demo). Hub API : 47011. Worker : 47012. Keycloak : port de management 47031.

Préfixes remizo_engine_* et remizo_hub_* : latence par route (histogrammes), offres appliquées, remises, points, coupons, erreurs, taille de l’outbox, retard des consommateurs RabbitMQ, âge de la dernière sauvegarde réussie. Le moteur expose aussi un résumé lisible sur GET /mgmt/v1/stats.

Provisionnés automatiquement (http://localhost:47111 en local) :

  • Moteur : latence p50/p95/p99, débit, offres appliquées, taux d’erreur, outbox ;
  • Hub : requêtes, jobs, consommateurs ;
  • PostgreSQL : réplication (rôle, retard), connexions, disque ;
  • RabbitMQ et sauvegardes.

Uptime Kuma surveille les /readyz des services et des moteurs de chaque workspace (http://localhost:47112).

Format JSON : ts, level, msg, service, workspace, instance, requestId, traceId. Aucune donnée personnelle en clair (e-mails et téléphones hachés). Les exceptions remontent dans Sentry ; les traces OpenTelemetry sont optionnelles.

Le hub évalue les règles (alerts.evaluate) et notifie les canaux configurés (Teams, e-mail, webhook) : moteur indisponible, retard de réplication, sauvegarde échouée ou trop ancienne, test de restauration en échec, tâche planifiée en échec ou bloquée, budget d’offre épuisé, connecteur en échec. La console affiche une vue globale de tous les workspaces avec voyants.

Le scénario k6 deploy/k6/engine.js rejoue un mélange simulation / évaluation / validation à 1 500 tickets/s et vérifie le p99.