pgprobe
08.2026 - Present
-
Rust -
PostgreSQL -
SQLx -
Tokio -
Clap
Description du projet
pgprobe est un outil CLI écrit en Rust qui se connecte à une instance PostgreSQL, collecte des dizaines de métriques diagnostiques via des requêtes en lecture seule, les analyse par rapport à des seuils configurables, et produit un rapport de santé JSON structuré avec des findings scorés et des recommandations actionnables.
Il fonctionne comme un binaire unique sans dépendance au-delà d'une chaîne de connexion PostgreSQL. Pas d'agent à installer, pas d'extension à charger, pas d'accès en écriture nécessaire.
Le pipeline est simple : connexion et détection des capacités du serveur (version, extensions disponibles, statut superuser), collecte parallèle des métriques via des collectors spécialisés, analyse par rapport à des seuils et génération de findings, puis sérialisation en un document JSON unique.
Les catégories de métriques couvertes incluent : santé générale (uptime, version, taille de la base, nombre de connexions), activité (requêtes actives, sessions idle-in-transaction, événements d'attente), requêtes (les plus lentes, les plus appelées, le temps total le plus élevé via pg_stat_statements), locks (contention, requêtes bloquées, deadlocks), réplication (lag, statut des slots, WAL senders), WAL (taux de génération, statut d'archivage, fréquence des checkpoints), I/O (buffer hit ratio, bgwriter, checkpointer), index (index inutilisés, redondants, manquants sur les FK, index hit ratio), tables (estimation du bloat, taux de sequential scans, statut autovacuum), séquences (proximité d'exhaustion), settings (paramètres de configuration clés) et limites (connexions, espace disque).
Chaque métrique est scorée et traduite en findings avec des niveaux de sévérité (critical, warning, info) et des suggestions de correction concrètes.
pgprobe est publié sur crates.io et distribué sous licence Apache-2.0.
Technologies utilisées
Ce projet utilise les technologies suivantes : Rust, PostgreSQL, SQLx, Tokio, Clap.