Я попытался использовать сценарий Nagios для мониторинга количества соединений с базой данных в базе данных Postgres, и я столкнулся с этой проблемой: они считаются открытыми в настоящее время и измеряются каждые 5 минут.
SELECT sum(numbackends) FROM pg_stat_database;
Тем не менее, это, кажется, пропускает огромное количество недолговечных соединений, поэтому статистика далека от реальности.
Я попытался запустить скрипт вручную и заметил большие изменения даже между двумя соединениями, расположенными в нескольких секундах друг от друга.
Как я могу получить эту информацию надежным способом? как Макс (Connectios) произошло в течение промежутка времени.
PgBouncer
перед вашим экземпляром PostgreSQL, он будет ставить в очередь соединения, когда он слишком занят, а не отклонять их. (Да, глупо, что PostgreSQL не может сделать это самостоятельно, но это не простое исправление; см. Бесконечные обсуждения в списках рассылки, посвященных встроенному пулу).
log_connections
и log_disconnections
) в лог-файл (например, csvlog), а затем использовать pgBadger или что-то подобное, чтобы извлечь это из лог-файла?