Activez et désactivez des pannes réelles sans redémarrer l'application. Trois niveaux d'intensité par anomalie.
💥Chaos Admin Panel
chaos.perfshop.io
🔴
Injection instantanée
Aucun redémarrage nécessaire — les anomalies sont injectées à chaud via l'API Spring Boot.
🎚️
3 niveaux d'intensité
Faible, Moyen, Critique — adaptez la pression selon l'objectif pédagogique ou le niveau de l'équipe.
📋
Audit trail complet
Chaque injection est horodatée et visible dans les traces Tempo — corrélation immédiate anomalie/impact.
🖥️ Backend — 9 anomalies
🧠
Memory Leak
JVM Heap
Fuite mémoire progressive simulée — la heap JVM monte jusqu'au GC storm, puis OOM. Observable en temps réel dans Grafana.
FaibleMoyenCritique
🐢
Slow Query
PostgreSQL
Injection de latence SQL — les requêtes s'allongent artificiellement, le p95 monte, le pool de connexions se sature.
FaibleMoyenCritique
🔒
Thread Pool Saturation
Tomcat
Le pool de threads HTTP se remplit — les nouvelles requêtes attendent ou échouent. Timeouts en cascade observables.
FaibleMoyenCritique
⏰
External Latency
HTTP Client
Simulation d'un service tiers lent — les appels externes ajoutent une latence configurable, le circuit breaker peut se déclencher.
FaibleMoyenCritique
💾
DB Connection Leak
HikariCP
Les connexions DB ne sont pas libérées — le pool HikariCP s'épuise progressivement jusqu'au rejet des nouvelles requêtes.
FaibleMoyenCritique
🔄
CPU Spike
JVM Thread
Thread en boucle infinie — la CPU monte et reste haute, dégradant toutes les requêtes en parallèle. Visible dans Pyroscope.
FaibleMoyenCritique
❌
Error Rate Injection
HTTP 500
Injection d'un taux d'erreur configurable sur les endpoints — de 5% à 80% de 500. Teste la résilience des scripts et alertes.
5%30%80%
♻️
GC Pressure
JVM GC
Cycle d'allocation mémoire cadencé (4s FILL + 1s RELEASE + 2s PAUSE) — la heap monte par vagues régulières. La pression GC est visible en temps réel dans Grafana JVM.
FaibleMoyenCritique
⛓️
Deadlock
JVM Thread
Inversion de verrous dans OrderService — les threads se bloquent mutuellement sur /api/orders. Détectable via thread dump JVM ou les traces distribuées Tempo.
FaibleMoyenCritique
🖥️ Frontend — 5 anomalies
⚡
Render Blocking
React
Des calculs lourds bloquent le thread principal React — l'UI se fige, le score Lighthouse s'effondre.
FaibleMoyenCritique
🌐
Network Throttling
XHR/Fetch
Les requêtes API depuis le front sont ralenties côté client — simule une connexion dégradée.
FaibleMoyenCritique
💥
Memory Leak UI
React / DOM
Accumulation de listeners et de nœuds DOM non nettoyés — la mémoire navigateur monte progressivement jusqu'au crash de l'onglet.
FaibleMoyenCritique
🔁
Infinite Re-render
React State
Boucle de re-rendu React provoquée par un useEffect mal configuré — CPU navigateur à 100%, UI non responsive.
FaibleMoyenCritique
🌀
Double Fetch
window.fetch
Monkey-patch de window.fetch() qui multiplie chaque requête réseau par un facteur 0–5. Expose les bugs React StrictMode et les doubles event listeners — invisible au monitoring réseau standard.
×1×3×5
⚡ Chaos Fonctionnel APM
Exceptions JVM réelles — diagnostics APM
Injectez de vraies exceptions Java dans le parcours applicatif. Identifiez la méthode fautive via Tempo et Pyroscope — pas les logs.
⚡
Objectif pédagogique : diagnostic APM
Les étudiants doivent identifier la méthode fautive via Tempo (traces distribuées) et Pyroscope (flamegraphs) — sans accès aux logs.
⚪
Désactivé — Nominal
0 exception
Comportement nominal — paiement, calcul de commande et catalogue fonctionnent correctement. Aucune exception injectée.
🟢
F1 — NullPointerException
Junior · OrderService.java
NPE injectée dans processPaymentPublic() — toute commande retourne HTTP 500. Stack trace courte dans Tempo.
Difficulté : Junior
🟡
F2 — StackOverflowError
Confirmé · FunctionalChaosService.java
Récursion infinie dans calculateOrderTotal() — stack répétitive (50+ frames identiques) visible dans Tempo. F1 reste actif (cumul).
Difficulté : Confirmé
🟠
F3 — OutOfMemoryError
Expert · ProductService.java
Allocation heap massive dans getAllProducts() — blocs 64 Mo en boucle. Heap JVM visible dans Grafana, heap dump analysable via Eclipse MAT. F1+F2 actifs.
Difficulté : ExpertOOM → /actuator/heapdump
⭐
F4 — Corruption silencieuse des données
Master · ProductService.java
HTTP 200, Tempo vert, aucune exception. Pourtant les fiches produits affichent un prix gonflé ×1,5, un stock épuisé et une description tronquée. Le monitoring ne voit rien — seul le payload révèle l'anomalie. F1+F2+F3 actifs (cumul).
Difficulté : Master
🎯 Chaos Métier ISTQB
16 anomalies e-commerce progressives
Injectez des anomalies progressives dans le parcours e-commerce. Les étudiants les identifient et les documentent — pas les corrigent.
+5 anomalies silencieuses à fort impact financier — invisibles sans inspection JSON ou vérification base/interface.
🎯
Exercice ISTQB — identification, analyse d'impact et documentation des anomalies. Monitoring temps réel dans l'onglet Chaos Métier du dashboard admin.
🔐 Chaos Sécurité OWASP
12 failles web injectables — OWASP Top 10
Injectez des failles web progressives dans l'application. Les étudiants les identifient, les exploitent et les documentent — dans un environnement isolé, à usage pédagogique uniquement.