J'ai essayé d'utiliser un script Nagios pour surveiller le nombre de connexions à une base de données sur une base de données Postgres et j'ai atteint ce problème: ceux-ci sont comptés comme des connexions actuellement ouvertes et mesurés toutes les 5 minutes.
SELECT sum(numbackends) FROM pg_stat_database;
Pourtant, cela semble manquer un grand nombre de connexions de courte durée, donc les statistiques sont loin de la réalité.
J'ai essayé d'exécuter le script manuellement et j'ai observé de grands changements même entre deux connexions établies à quelques secondes l'une de l'autre.
Comment puis-je obtenir ces informations de manière fiable? comme max (connectios) s'est produit pendant un intervalle de temps.
PgBouncer
devant votre instance PostgreSQL, il mettra les connexions en file d'attente lorsqu'il est trop occupé au lieu de les rejeter. (Oui, c'est stupide que PostgreSQL ne puisse pas le faire lui-même mais ce n'est pas une solution simple; voir les discussions sans fin sur les listes de diffusion concernant le regroupement intégré).
log_connections
et log_disconnections
) dans le fichier journal (par exemple, csvlog), puis utilisez pgBadger ou quelque chose de similaire pour extraire cela du fichier journal?