Session 11 — Revue code Java, corrections APM, Chaos Fonctionnel & évaluation commerciale¶
Durée : ~6 heures
Conversations : 1
Objectif initial : Revue de code Java (4 WARN), correction dashboards APM, documentation Chaos Fonctionnel
Objectif final : WARN corrigés, dashboards APM propres, chaos/functional.md créé, évaluation commerciale générée
✅ Ce qui a été livré¶
Revue de code Java — corrections WARN :
- SecurityTokenService.java — Fix I3 : validateToken(null) retournait true si un token existait en session → désormais false systématiquement. Javadoc mise à jour.
- CpuChaosScheduler.java — Fix W1 : suppression de 3 imports orphelins (Future, ArrayList, List) issus d'une refactorisation antérieure. Comportement runtime inchangé
- Points INFO acceptés tels quels (W2 mot de passe admin clair, I2 HMAC_SECRET visible, I4 volatile+synchronized surdimensionné, I5 méthode public cosmétique)
Corrections dashboards APM Grafana :
- dashboard-apm-eleve.json — 3 panels traces_spanmetrics_* basculés sur métriques Micrometer natives (http_server_requests_seconds_*)
- dashboard-apm-eleve.json — variable DS_PYROSCOPE ajoutée au templating (manquante)
- dashboard-apm-eleve.json — 3 nouveaux panels flamegraph ajoutés (CPU perf_event, CPU itimer, Lock Contention) + y du bouton Heap Dump corrigé
- dashboard-apm-formateur.json — Regex P95 /api/orders corrigée (.*/orders.* → /api/orders.*)
- dashboard-apm-formateur.json — TraceQL X-Admin-Token corrigée (x_admin_token → x-admin-token, convention OTel tirets)
Documentation MkDocs :
- chaos/functional.md créé — page complète : niveaux, détail F1/F2/F3, corrélation APM, requête TraceQL, Pyroscope flamegraph heap, combinaisons pédagogiques
- mkdocs.yml mis à jour — Chaos Fonctionnel déplacé de À Venir → Chaos Engineering
- chaos/intro.md mis à jour — 5 familles de chaos, lignes F1/F2/F3 dans le tableau de corrélation
Évaluation commerciale :
- PerfShop_Evaluation_Commerciale.docx + .md générés — prompt neutre 6 sections pour soumission multi-IA
🤖 Erreurs imputables à Claude AI — Session 11¶
❌ Erreur S11-1 — Query Kubernetes hors scope¶
Ce que j'ai proposé : Réponse approfondie sur la migration Kubernetes avant même de calibrer sur l'intention (stratégique vs implémentation concrète).
Ce qui s'est passé : La réponse était correcte dans le fond mais non calibrée sur la vraie question.
Temps perdu : 0 min | Sévérité : ⭐
❌ Erreur S11-2 — traces_spanmetrics_calls_total sans vérifier la config Tempo¶
Ce que j'ai proposé : 3 panels du dashboard élève utilisant traces_spanmetrics_calls_total.
Ce qui s'est passé : Cette métrique n'existe que si le pipeline spanmetrics est activé dans tempo-config.yml, ce qui n'est pas le cas. Les panels affichaient "No data" en production alors que les métriques Micrometer natives étaient disponibles.
Pourquoi c'était une erreur : J'aurais dû vérifier la config Tempo avant de livrer des panels qui en dépendent. Le Syndrome du Fix Théorique Sans Validation Empirique — déjà identifié en sessions précédentes.
Temps perdu : ~20 min | Sévérité : ⭐⭐⭐
❌ Erreur S11-3 — Attribut TraceQL x_admin_token avec underscore¶
Ce que j'ai proposé : Query TraceQL {span.http.request.header.x_admin_token != ""}.
Ce qui s'est passé : La convention OTel normalise les headers HTTP avec tirets (x-admin-token), pas underscores. La query retournait toujours 0 résultats.
Pourquoi c'était une erreur : La spécification OpenTelemetry http.request.header.* normalise les noms de headers en minuscules avec tirets. Non vérifié dans la spec OTel avant livraison.
Temps perdu : ~10 min | Sévérité : ⭐⭐
📊 Récapitulatif Session 11¶
| # | Erreur | Temps perdu | Sévérité |
|---|---|---|---|
| S11-1 | Réponse Kubernetes non calibrée sur l'intention | 0 min | ⭐ |
| S11-2 | traces_spanmetrics_* sans vérifier config Tempo |
~20 min | ⭐⭐⭐ |
| S11-3 | x_admin_token underscore au lieu de tiret (OTel) |
~10 min | ⭐⭐ |
| TOTAL | ~30 min |
Pattern : Le Syndrome du Fix Théorique Sans Validation Empirique (S11-2) — livraison de panels dépendant d'une feature non activée dans la config. Pattern déjà identifié en sessions 1, 8, 12. À surveiller systématiquement : vérifier que la source de données existe réellement avant de l'utiliser.
🎓 Conclusion Session 11¶
✅ Clore les 2 WARN de la revue de code — SecurityTokenService (I3) et CpuChaosScheduler (W1) corrigés
✅ Dashboards APM opérationnels — 5 corrections ciblées, 3 nouveaux flamegraphs dans le dashboard élève
✅ Chaos Fonctionnel documenté — chaos/functional.md complet, intégré dans la nav MkDocs
✅ Évaluation commerciale — prompt neutre multi-IA livré en .docx et .md
Ratio temps productif / temps total : ~92%