Ho provato a usare uno script Nagios per monitorare il numero di connessioni al database su un database Postgres e ho riscontrato questo problema: queste vengono contate come connessioni aperte e misurate ogni 5 minuti.
SELECT sum(numbackends) FROM pg_stat_database;
Tuttavia, questo sembra perdere un numero enorme di connessioni di breve durata, quindi le statistiche sono lontane dalla realtà.
Ho provato a eseguire manualmente lo script e ho osservato grandi cambiamenti anche tra due connessioni effettuate a pochi secondi l'una dall'altra.
Come posso ottenere queste informazioni in modo affidabile? come max (connectios) si è verificato durante un intervallo di tempo.
PgBouncer
davanti all'istanza di PostgreSQL, metterà in coda le connessioni quando è troppo occupato invece di rifiutarle. (Sì, è stupido che PostgreSQL non possa farlo da solo, ma non è una soluzione semplice; vedi le discussioni infinite sulle mailing list relative al pooling incorporato).
log_connections
e log_disconnections
) nel file di registro (ad es. Csvlog) e quindi usare pgBadger o qualcosa di simile per estrarlo dal file di registro?