Documentation / Index design
Index de la documentation de conception
Documentation de conception approfondie de perf-sentinel. Ces documents expliquent pourquoi chaque décision a été prise, pas seulement ce que le code fait. Ils sont destinés aux contributeurs et mainteneurs qui ont besoin de comprendre les raisons derrière l'implémentation.
Pour la documentation orientée utilisateur, voir l'index de la documentation.
Table des matières
| Document | Sujets |
|---|---|
| 01 : Pipeline et types | Pipeline vs architecture hexagonale, chaîne de types, découpage en workspace, sortie déterministe, quality gate |
| 02 : Normalisation | Machine à états SQL, normaliseur HTTP, micro-optimisations (batch push, saut IN-list, UUID codé à la main) |
| 03 : Corrélation et streaming | Groupement batch par HashMap, cache LRU, buffer circulaire, éviction TTL, budget mémoire |
| 04 : Détection | Algorithmes de détection N+1, redondant et lent, clés empruntées, fenêtre basée sur les itérateurs |
| 05 : GreenOps et carbone | Formule IIS, dédup du ratio de gaspillage, conversion CO2, alignement SCI |
| 06 : Ingestion et daemon | Conversion OTLP, boucle événementielle du daemon, échantillonnage, renforcement sécurité |
| 07 : CLI, config et release | Sous-commandes bench, query, report, diff. Sink dashboard HTML, export CSV, hash deep-link, modal cheatsheet, raccourcis clavier style vim. Parsing de la config, profil release, distribution |
| 08 : Rapport public périodique | Déterminisme du schéma v1.0, granularité G1/G2, validator collect-all, attribution par service, writer d'archive daemon, dispatcher CLI disclose |
| 09 : Attribution carbone | Énergie + carbone par service au scoring, attribution de la région, précédence des modèles, branchement runtime-vs-proxy dans l'aggregator |
| 10 : Sigstore et SLSA | Predicate in-toto v1, flow signature Sigstore cosign, provenance SLSA Build L3 du binaire, chaîne verify-hash, privacy sur Rekor public |
Correspondance avec les fichiers source
| Fichier source | Document de conception |
|---|---|
lib.rs | 01 : Pipeline |
event.rs | 01 : Pipeline |
pipeline.rs | 01 : Pipeline |
quality_gate.rs | 01 : Pipeline |
normalize/sql.rs | 02 : Normalisation |
normalize/http.rs | 02 : Normalisation |
normalize/mod.rs | 02 : Normalisation |
correlate/mod.rs | 03 : Corrélation |
correlate/window.rs | 03 : Corrélation |
detect/mod.rs | 04 : Détection |
detect/n_plus_one.rs | 04 : Détection |
detect/redundant.rs | 04 : Détection |
detect/slow.rs | 04 : Détection |
detect/fanout.rs | 04 : Détection |
detect/chatty.rs | 04 : Détection |
detect/pool_saturation.rs | 04 : Détection |
detect/serialized.rs | 04 : Détection |
detect/sanitizer_aware.rs | 04 : Détection |
detect/suggestions.rs | 04 : Détection |
score/mod.rs | 05 : GreenOps, 09 : Attribution carbone |
score/carbon.rs | 05 : GreenOps |
score/carbon_compute.rs | 05 : GreenOps, 09 : Attribution carbone |
score/region_breakdown.rs | 05 : GreenOps |
ingest/mod.rs | 06 : Ingestion |
ingest/json.rs | 06 : Ingestion |
ingest/otlp.rs | 06 : Ingestion |
ingest/pg_stat.rs | 06 : Ingestion |
daemon/mod.rs | 06 : Ingestion |
daemon/event_loop.rs | 06 : Ingestion |
daemon/listeners.rs | 06 : Ingestion |
daemon/tls.rs | 06 : Ingestion |
daemon/json_socket.rs | 06 : Ingestion |
daemon/sampling.rs | 06 : Ingestion |
daemon/findings_store.rs | 06 : Ingestion |
daemon/query_api.rs | 06 : Ingestion |
config.rs | 07 : CLI/Config, 08 : Rapport périodique |
report/mod.rs, json.rs | 01 : Pipeline |
report/metrics.rs | 06 : Ingestion |
report/periodic/* | 08 : Rapport périodique |
daemon/archive.rs | 08 : Rapport périodique |
sentinel-cli/src/main.rs | 07 : CLI/Config |
sentinel-cli/src/disclose.rs | 08 : Rapport périodique |
sentinel-cli/src/tui.rs | 07 : CLI/Config |
detect/correlate_cross.rs | 04 : Détection |