it-swarm.com.de

App zur Überwachung von PostgreSQL-Abfragen in Echtzeit?

Ich möchte die Abfragen überwachen, die von einer Anwendung an meine Datenbank gesendet werden. Zu diesem Zweck habe ich pg_stat_activity gefunden, aber öfter dann nicht. Die zurückgegebenen Zeilen lauten "in Transaktion". Entweder mache ich etwas falsch, bin nicht schnell genug, um die Anfragen zu beantworten, bin verwirrt oder alles oben Genannte!

Kann jemand die idiotensicherste Methode zur Überwachung von Abfragen empfehlen, die mit PostgreSQL ausgeführt werden? Ich bevorzuge eine einfach zu verwendende UI-basierte Lösung (Beispiel: SQL Server "Profiler"), aber ich bin nicht zu wählerisch.

20

Mit PostgreSQL 8.4 oder höher können Sie das Modul contrib pg_stat_statements verwenden, um Abfrageausführungsstatistiken des Datenbankservers zu erfassen.

Führen Sie das SQL-Skript dieses Contrib-Moduls pg_stat_statements.sql (auf Ubuntu in /usr/share/postgresql/<version>/contrib) in Ihrer Datenbank aus und fügen Sie diese Beispielkonfiguration Ihrem postgresql.conf hinzu (erfordert einen Neustart):

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

Um zu sehen, welche Abfragen in Echtzeit ausgeführt werden, möchten Sie möglicherweise das Serverprotokoll so konfigurieren, dass alle Abfragen oder Abfragen mit einer minimalen Ausführungszeit angezeigt werden. Stellen Sie dazu die Konfigurationsparameter logginglog_statement und log_min_duration_statement in Ihrer postgresql.conf entsprechend ein.

17
tscho

PgAdmin bietet ein ziemlich einfach zu bedienendes Tool namens Server Monitor

(Extras -> ServerStatus)

25
ertx

Ich habe es leider nicht selbst ausprobiert, aber ich denke, dass pgFouine Ihnen einige Statistiken zeigen kann.

Es scheint zwar, dass es Ihnen keine Anfragen in Echtzeit anzeigt, sondern generiert im Nachhinein einen Bericht mit Abfragen, vielleicht befriedigt es trotzdem Ihre Nachfrage?

Sie können einen Blick auf http://pgfouine.projects.postgresql.org/ werfen.

0
Patrick