запросов все более менее понятно, но чем мониторить транзакции не очень)
Графана
Самое банальное, что приходит в голову, вести лог транзакций с отсечками времени. В начале и конце транзакции делать select clock_timestamp в таблицу лога.
Не уверен что понял, что вы имеете ввиду под «мониторить продолжительность транзакции». Кажется будто время выполнения транзакционного запроса равно времени транзакции
Да, в графане есть такая метрика.
Тоже вариант, но хотелось бы это сразу на выходе в виде графиков системы мониторинга иметь.
Я просто раз в минуту делал запрос в pg_stat_activity и выбирал среднее из now() - xact_start
То есть, пришедшая транзакция сама говорит сколько выполнялась?
Среднее время транзакции 80мс - за минуту их разве большая часть уже не пропадёт из pg_stat_activity?
Нам были критичны зависшие и по графику среднего их как раз хорошо было мониторить.
Я исследую зависимость синхронной репликации на узком канале интернет, заметил что в таком конфиге при чекпоинте идёт подвисание транзакций. Чтобы оценить их влияние надо померить длительность исполнения транзакций.
Обсуждают сегодня