用于实时监控PostgreSQL查询的应用程序?

Rus*_*her 23 postgresql monitoring

我想监视从应用程序发送到我的数据库的查询.为此,我发现pg_stat_activity,但更常见的是,返回的行"在事务中"读取.我要么做错了,要么快到看不到查询,我感到困惑,或者以上所有内容!

有人可以推荐最耐用的方法来监控针对PostgreSQL运行的查询吗?我更喜欢某种易于使用的基于UI的解决方案(例如:SQL Server的"Profiler"),但我不是太挑剔.

ert*_*rtx 26

PgAdmin提供了一个非常易于使用的工具,称为服务器监视器

(工具 - > ServerStatus)

  • 此工具似乎已在PgAdmin 4中消失. (10认同)
  • 我发现PgAdmin 4比PgAdmin 3更糟糕.=( (4认同)

tsc*_*cho 18

使用PostgreSQL 8.4或更高版本,您可以使用contrib模块 pg_stat_statements来收集数据库服务器的查询执行统计信息.

在您的数据库中运行此contrib模块的SQL脚本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
Run Code Online (Sandbox Code Playgroud)

要查看实时执行的查询,您可能只想配置服务器日志以显示具有最短执行时间的所有查询或查询.这样做设置日志配置参数 log_statement,并log_min_duration_statement相应地在你的postgresql.conf.


小智 9

pg_activity是我们使用的。 https://github.com/dalibo/pg_activity

这是一个很棒的工具,具有top类似的界面。

您可以使用以下命令在 Ubuntu 21.10 上安装并运行它:

sudo apt install pg-activity
pg_activity
Run Code Online (Sandbox Code Playgroud)