pg_stat_ch,
l’extension Postgres open-source qui transmet en flux des compteurs par instruction vers
ClickHouse Cloud. La télémétrie est normalisée dans Postgres avant de quitter
la base de données — les littéraux sont supprimés et remplacés par des placeholders, afin que les
valeurs exactes utilisées dans vos requêtes n’entrent jamais dans le flux de télémétrie.
Ouvrir Query insights
- Un vue d’ensemble qui affiche sur un seul écran un aperçu de l’état de santé de la base de données.
- Une table requête lente récurrente qui classe chaque query pattern exécuté par votre base de données, triée selon le critère qui vous semble pertinent.
- Un panneau requête récente qui répertorie les exécutions individuelles dans l’ordre chronologique inverse.
- Un volet de détail qui agrège tous les compteurs pour un seul pattern.
Vue d’ensemble
Un seul écran vous permet de voir si la base de données est saine. Une instance saine
présente un profil familier : un taux de succès du buffer proche de 100 %,
un volume de requêtes qui suit le trafic applicatif, un taux d’erreur stable
ou nul, et des latences par percentile qui restent proches les unes des autres.
Requêtes lentes récurrentes
Trier selon ce que vous soupçonnez
- Durée d’exécution totale — là où la base de données a passé le plus de temps réel.
- Temps CPU — patterns gourmands en calcul.
- Appels — patterns très fréquents.
- Erreurs — échecs répétés.
- Latence moy / P50 / P95 / P99 / max — valeurs aberrantes, par percentile.
- Lignes renvoyées, Blocs lus, Blocs en cache, Octets WAL — patterns qui ont fait transiter le plus de données via le moteur, le cache ou le journal de transactions.
Affiner la table
- Base de données
- Utilisateur
- Opération (
SELECT,INSERT,UPDATE,DELETE, …) - Application — le
application_namede la chaîne de connexion
sales »
se traduit par deux menus déroulants. Les valeurs de filtre se renseignent automatiquement à partir de ce que votre
instance a réellement exécuté.
Requêtes récentes
Volet de détail
- Modèle de requête — le SQL normalisé avec les littéraux remplacés par
$1,$2, … et un bouton pour copier dans le presse-papiers. - Utilisation agrégée des ressources — une grille de 13 cartes de statistiques couvrant le nombre total d’appels, la latence moy/P95/P99/max, le temps d’exécution total, les lignes renvoyées, le ratio de succès du cache, les blocs lus, les blocs touchés, le temps CPU, les octets WAL et les erreurs.
- Contexte de la requête — la base de données, l’utilisateur, l’opération et l’application dont provient ce pattern.
- Exécutions notables — les erreurs, les exécutions inhabituellement lentes et celles qui renvoient de gros volumes de résultats, affichées avant la liste complète des exécutions récentes.
- Exécutions récentes — les exécutions individuelles du même pattern, avec des compteurs par exécution.
Compteurs par exécution
- Blocs partagés — lectures et hits toujours affichés ; écritures et blocs salis affichés lorsqu’ils sont non nuls.
- Opérations sur blocs locaux et temporaires — des opérations sur blocs temporaires non nulles signifient qu’un tri ou un hachage a débordé sur disque.
- Temps de lecture / écriture — temps d’E/S, distinct du temps CPU.
- Temps CPU — utilisateur et système, séparément.
- Workers parallèles — prévus vs. réellement lancés.
- JIT — temps total de compilation JIT et nombre de fonctions.
- WAL — octets et nombre d’enregistrements.
API Query insights
Fonctionnement
Normalisée dans Postgres, avant le wire
pg_stat_ch intercepte la phase parse-analyze, remplace chaque littéral par un
espace réservé ($1, $2, …) et met en cache le pattern obtenu dans un
cache LRU propre à chaque backend, indexé par queryid. Lorsque l’executor termine
l’instruction, c’est ce pattern mis en cache qui est associé à l’événement. L’instruction
exacte avec ses valeurs ne quitte jamais la base de données.
Sans impacter la base de données
Événements bruts, non agrégés
pg_stat_ch émet un événement brut par instruction exécutée (principale ou
imbriquée), selon l’échantillonnage appliqué. Chaque percentile, classement et ventilation
dans l’UI correspond à une requête ClickHouse exécutée sur ce même flux d’événements.
Le même moteur que celui de nos clients
Open source
pg_stat_ch est sous licence Apache 2.0. Utilisez-le avec n’importe quel Postgres et envoyez les données vers n’importe quel
ClickHouse. Le code source et les tickets sont disponibles sur
github.com/clickhouse/pg_stat_ch.
- Tableau de bord Monitoring — graphiques intégrés sur les ressources et l’activité
- Prometheus endpoint — scraper les métriques au niveau de l’hôte dans votre propre stack d’observability
- Managed Postgres OpenAPI — interroger par programmation les requête lente récurrente et les exécutions récentes
- Extensions — les extensions disponibles sur les instances Managed Postgres
pg_stat_chsur GitHub — l’extension open-source sur laquelle repose Query Insights