Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
total_time. Это поле показывает в миллисекундах время выполнения (включая ожидание) для каждого типа запросов.
если ваш Postgres злоупотребляет ошибками, idle транзакциями или блокировками, то Weaponry подскажет что делать.
3) Пока подсказки довольно простые
Алексей, спасибо за полезные запросы к pg_stat_activity.
Добавлю, что при наличии микросервисов удобно группировать метрики из pg_stat_activity по usename. Чтобы сопоставлять "idle in transaction" с конкретным сервисом.
И дополнительно можно группировать pg_stat_activity по ключу
md5(query)::uuid::varchar(100) as query_md5А если места не жалко, то можно просто по
left(regexp_replace(query, '\\r|\\n|\\t|\\s+', ' ', 'g'), 1000) queryТогда для "idle in transaction" накапливается статистика о запросах, после которых транзакция зависла. md5 можно сопоставить с md5 из pg_stat_statements. А query сам по себе интересен. В МакроСервисах кода много и текст query может быстрее привести к месту в коде, где транзакции обрываются.
PostgreSQL, RED, Golden Signals: руководство к действию