Мониторинг и анализ
Неплохой мониторинг из коробки может предоставить заббикс: https://www.zabbix.com/integrations/postgresql
Много каких-то умных графиков, в которых я нихрена не понимаю
https://sematext.com/blog/postgresql-performance-tuning/
Как вообще работает постгря?
Важно партиционирование и индексы. Надо нарезать большие таблицы на более мелкие (партиционировать их) и создавать индексы для столбцов, которые чаще всего используются. Но не стоит переусердствовать с индексами.
Куда смотреть на мониторинге? Как мониторить? Что мониторить?
Понятное дело, надо мониторить саму железку. Сеть, проц, озу, нагрузку на диски.
Как мониторинг саму постгрю? Можно накостылять такой скриптец и поместить его в крон:
#!/bin/bash
result=$(sudo -u postgres psql -c "select query_start, state, query from pg_stat_activity where (state = 'idle in transaction') and xact_start is not null and (now() - pg_stat_activity.query_start) > interval '1 minutes';")
echo $result | grep '0 rows' && exit
echo ok
echo $result >> /root/log
Лучше будет включить логгирование медленных запросов (src)
log_min_duration_statement = 1000 # миллисекунды
logging_collector = on
log_directory = 'pg_log'