使用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文件,然后在菜单中选择“顶部”→“最慢的单个查询”打开。
这里的每个查询会按照延迟的顺序显示。
当想要查询哪些经过归一化的较慢的值时,可以查看”归一化的最慢查询”。”归一化的最慢查询”还可以显示相同形式的查询被执行的次数。
请提供以下内容的中文译文:
参考
- pgBadger Documentation