web-dev-qa-db-ja.com

PostgreSQLクエリをリアルタイムで監視するアプリ?

アプリケーションからデータベースに送信されるクエリを監視したいと思います。そのために、私はpg_stat_activityを見つけましたが、多くの場合、「トランザクションで」読み取られた行が返されません。私は何か間違ったことをしている、クエリが届くのに十分な速さではない、混乱している、または上記のすべてのいずれかです!

誰かがPostgreSQLに対して実行されているクエリを監視するための最もばかげたことのない方法を推奨できますか?ある種の使いやすいUIベースのソリューション(例:SQL Serverの「プロファイラー」)を使用したいと思いますが、あまりにも選り好みではありません。

24

PostgreSQL 8.4以降では、contribモジュールpg_stat_statements を使用して、データベースサーバーのクエリ実行統計を収集できます。

このcontribモジュールpg_stat_statements.sql(ubuntuでは/usr/share/postgresql/<version>/contribにあります)のSQLスクリプトをデータベースで実行し、このサンプル構成を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

すべてのクエリまたは最小実行時間のクエリを表示するようにサーバーログを構成するだけで、どのクエリがリアルタイムで実行されるかを確認できます。これを行うには、postgresql.confで logging configuration parameterslog_statementおよびlog_min_duration_statementを適宜設定します。

18
tscho

PgAdmin は、サーバーモニターと呼ばれる非常に使いやすいツールを提供します

(ツール->サーバーステータス)

26
ertx

残念ながら私自身は試していませんが、pgFouineで統計を表示できると思います。

リアルタイムでクエリを表示するのではなく、後でクエリのレポートを生成するように見えますが、おそらくまだ要求を満たしていますか?

あなたが見ることができます http://pgfouine.projects.postgresql.org/

0
Patrick

pg_activityは私たちが使用するものです。 https://github.com/dalibo/pg_activity

topのようなインターフェースを備えた優れたツールです

0
user3617786