Подтвердить что ты не робот

Приложение для мониторинга запросов PostgreSQL в режиме реального времени?

Я хочу отслеживать запросы, отправляемые в мою базу данных из приложения. С этой целью я нашел pg_stat_activity, но чаще всего нет, строки, которые возвращаются, читаются "в транзакции". Я либо делаю что-то не так, не достаточно быстро, чтобы увидеть, что запросы приходят, запутались или все вышеперечисленное!

Может ли кто-то рекомендовать самый идиотский способ отслеживать запросы, запущенные против PostgreSQL? Я бы предпочел какое-то простое в использовании решение на основе пользовательского интерфейса (пример: SQL Server "Профайлер" ), но я не слишком разборчив.

4b9b3361

Ответ 1

С PostgreSQL 8.4 или выше вы можете использовать модуль contrib pg_stat_statements для сбора статистики выполнения запросов на сервере базы данных.

Запустите SQL script этого модуля contrib pg_stat_statements.sql (в ubuntu его можно найти в /usr/share/postgresql/<version>/contrib) в вашей базе данных и добавьте эту конфигурацию примера в ваш postgresql.conf (требуется перезапуск):

custom_variable_classes = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = top # top,all,none
pg_stat_statements.save = off

Чтобы узнать, какие запросы выполняются в реальном времени, вы можете просто настроить журнал сервера, чтобы отображать все запросы или запросы с минимальным временем выполнения. Для этого установите параметры конфигурации ведения журнала log_statement и log_min_duration_statement в вашем postgresql.conf соответственно.

Ответ 2

PgAdmin предлагает довольно простой в использовании инструмент под названием серверный монитор

(Инструменты → ServerStatus)

Ответ 3

Я не пробовал это сам, к сожалению, но я думаю, что pgFouine может показать вам статистику.

Хотя, похоже, он не показывает ваши запросы в режиме реального времени, а скорее генерирует отчет о запросах впоследствии, возможно, он все еще удовлетворяет вашему требованию?

Вы можете взглянуть на http://pgfouine.projects.postgresql.org/