使用pgBadger来可视化PostgreSQL的慢查询

本文将介绍如何使用CLI工具pgBadger分析PostgreSQL的日志文件,并输出HTML格式的报告。从pgBadger的安装到报告的查看方法,我们将一步一步进行说明,只需按顺序阅读即可。

如果您想首先了解pgBadger生成什么样的报告,请观看报告的演示。

pgBadger的安装方法

在家自酿。

brew install pgbadger

PostgreSQL的配置

为了收集日志,需要在postgresql.conf中进行如下设置:

log_destination = 'stderr'
logging_collector = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d '
log_statement = 'none'
log_duration = off
log_min_duration_statement = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
lc_messages = 'C'

Docker Compose的配置

创建完上述配置文件后,只需使用命令”postgres -c ‘config_file=/etc/postgresql/postgresql.conf'”启动Postgres本身即可。这样日志就能被收集了。

如果在Docker Compose中启动了postgres,应该进行以下设置:

  db:
    image: postgres:9.6.4
    command: postgres -c 'config_file=/etc/postgresql/postgresql.conf' # postgresql.confを読み込ませる
    volumes:
      - ./postgresql.conf:/etc/postgresql/postgresql.conf
      - ./postgresql-logs:/var/lib/postgresql/data/pg_log # ログファイルの書き出し先ディレクトリをマウント

运行应用并记录日志

为了收集查询日志,我们实际运行应用程序并进行日志收集。过一段时间后,会产生一些日志文件。

$ ls -1 ./postgresql-logs/pg_log
postgresql-2019-04-05_082713.log
postgresql-2019-04-05_082801.log
postgresql-2019-04-05_082819.log
postgresql-2019-04-05_082840.log
postgresql-2019-04-05_082900.log
postgresql-2019-04-05_082914.log

将日志输入pgBadger进行分析。

将收集到的日志文件作为pgbadger命令的参数进行指定并执行。

pgbadger postgresql-logs/pg_log/postgresql-2019-04-05_08*

这样做的话,就会生成out.html文件。用浏览器打开它。

打开慢查询报告

打开out.html文件,然后在菜单中选择“顶部”→“最慢的单个查询”打开。

Screen_Shot_2019-04-08_at_10_45_56.png

这里的每个查询会按照延迟的顺序显示。

当想要查询哪些经过归一化的较慢的值时,可以查看”归一化的最慢查询”。”归一化的最慢查询”还可以显示相同形式的查询被执行的次数。

请提供以下内容的中文译文:

参考

    pgBadger Documentation
广告
将在 10 秒后关闭
bannerAds