Détectez les I/O gaspillées de vos traces. Chiffrez-les en énergie et carbone.
perf-sentinel repère les N+1, appels redondants, requêtes lentes et fanout dans vos traces OpenTelemetry, en quality gate CI ou en daemon OTLP, puis convertit chaque I/O évitable en énergie et en CO₂.
Prérequis : vos services émettent des traces OpenTelemetry (spans SQL et HTTP) portant le texte de la requête (db.statement / db.query.text) et l’URL cible (http.url / url.full).
Mise en place par langage (Java, C#, Rust, Go, Node.js, Python).
Auditez votre tracing d’abord : les spans qui ne portent pas ces attributs sont écartés en silence, sans avertissement, donc un rapport maigre ou vide peut signifier aucun problème détecté ou aucune instrumentation exploitable. perf-sentinel inspect montre ce qui a réellement été extrait, un arbre de spans vide signifie que les attributs porteurs manquent en amont. Voir ce qui borne les findings.
Ce que ce n’est pas : un APM complet, un profiler continu, ni (pour le moment) une plateforme de comptabilité carbone réglementaire standalone. Voir le comparatif.
Maturité : bêta, pré-1.0. La CLI, les clés de configuration et les formats sur disque peuvent encore changer avant la 1.0. Les enums de sortie JSON sont la seule partie sous contrat de stabilité explicite, les ruptures de compatibilité étant signalées dans les notes de version.
Pourquoi perf-sentinel ?
Les anti-patterns d’I/O touchent toute application, monolithe comme microservices. En distribué, une requête cascade sur plusieurs services et personne ne voit le chemin complet.
Les outils existants n’en couvrent qu’une part : Hypersistence se limite à JPA, Datadog et New Relic sont des agents lourds, Sentry dépend de son SDK. Aucun détecteur au niveau protocole, auto-hébergeable, en gate CI comme en daemon.
perf-sentinel lit les traces que votre application émet déjà (SQL, HTTP), quel que soit le langage ou l’ORM : il voit les requêtes générées, sans avoir besoin de comprendre JPA ou EF Core.
Chaque I/O évitable est aussi chiffré en énergie et en CO₂, par le bas et attribuable au code.
Le poids carbone du numérique,
et l’angle mort que personne ne mesure
Le numérique pèse déjà 1,8 % à 3,9 % des émissions mondiales de GES, à la hauteur de l’aviation civile et en croissance rapide. Mais la part due au code et aux applications web lourdes mal optimisées reste non quantifiée à l’échelle mondiale.
ITU et IEA confirment la hausse rapide du numérique. Mais la part due au code et aux apps web lourdes reste non quantifiée à l’échelle mondiale.
L’approche bottom-up de perf-sentinel face au top-down des outils actuels
Dix anti-patterns d'I/O, au niveau protocole
Sur les requêtes SQL et HTTP que vos services émettent déjà, quel que soit le langage ou l’ORM.
Chaque finding embarque : type, sévérité, template normalisé, occurrences, endpoint source, suggestion, localisation source et impact GreenOps. En mode daemon, s’y ajoute la corrélation cross-trace.
1 binaire, 2 modes, 4 postures
En local : drill-down clavier Analyze · Inspect · Explain en TUI, ou un dashboard HTML offline en un seul fichier à ouvrir et partager. Démo intégrée, rien à configurer.
Sur traces capturées : exit 1 au dépassement de seuil, sortie SARIF pour le code scanning, JSON déterministe. Pas de gate qui clignote.
Un daemon par service pour du debug isolé, qui ingère les traces OTLP de ce service juste à côté.
Un daemon unique long-running vers lequel un OTel Collector route : gRPC :4317 + HTTP :4318, /metrics Prometheus, dashboard live, API de query et corrélation cross-trace.
Un mono-binaire Rust, mesuré
Édition 2024, lié statiquement à musl et livré dans des images FROM scratch. Les chiffres ci-dessous chronomètrent le pipeline d’analyse seul (mono-thread, sur jeux de données synthétiques) : ils isolent le coût du pipeline, pas un débit de bout en bout.
Benchmarks détaillés dans la doc →Chaque I/O évitable a un coût,
en temps, énergie et carbone
Réduire les N+1 et les appels redondants améliore les temps de réponse et la consommation d'énergie : les deux objectifs ne s'opposent pas. co2.total suit le numérateur Software Carbon Intensity v1.0 (ISO/IEC 21031:2024) : l’énergie consommée (E) multipliée par l’intensité carbone du réseau électrique (I), plus les émissions matérielles embarquées (M), le tout sommé sur les traces analysées.
co2.total multi-régionsEstimation directionnelle (encadrement ~2× en mode proxy, plus serrée avec une source mesurée : Scaphandre RAPL, Kepler eBPF, Redfish BMC ou SPECpower cloud + calibration). Exploitable comme activity data pour Watershed · Sweep · Greenly · Persefoni, ou pour démontrer la conformité RGESN. Il peut aussi émettre des rapports de divulgation publique périodiques énergie et carbone (JSON trimestriel ou annuel, signature Sigstore optionnelle, vérifiables par hash).
Métriques GreenOps dans le guide →Léger, agnostique, CI-natif, carbon-aware
« APM commercial type » généralise les outils SaaS à base d’agent comme Datadog ou New Relic ; le comportement exact varie selon le produit, et les empreintes sont des ordres de grandeur issus de déploiements publics. perf-sentinel n’est pas un APM complet et ne remplace pas une suite d’observabilité, il s’y adosse. Le comparatif détaillé par outil (Sentry, Hypersistence, Digma, Pyroscope, OTJAE) figure dans la doc.
Comparatif complet dans le guide →Ce que perf-sentinel n’est pas
AGPL-3.0, ce que ça implique pour votre code
Un résumé pratique et lisible par un service juridique, pour que personne n’ait à fouiller le dépôt. perf-sentinel est sous licence GNU Affero General Public License v3.0.
Faire tourner perf-sentinel ne place pas vos propres services sous AGPL. C’est un processus autonome : vos applications lui envoient seulement des traces OpenTelemetry par le réseau (OTLP), une communication à distance et non un lien de compilation, qui ne crée donc aucune œuvre dérivée et n’impose aucune obligation de licence sur votre code.
L’AGPL couvre le code source de perf-sentinel lui-même. Utiliser les binaires ou l’image officiels non modifiés n’entraîne aucune obligation de copyleft, d’aucune sorte.
La seule condition : si vous modifiez perf-sentinel et proposez la version modifiée à des tiers via un réseau, l’article 13 vous oblige à mettre cette source modifiée à disposition de ces utilisateurs. Ceci est un résumé pratique et non un avis juridique. Consultez votre service juridique en cas de doute.