前言
DTC 大会昨日已经圆满结束,原本打算在 DTC 上分享《深入浅出 vacuum 内核原理》,可惜由于加班,未能赴约,不过 PostgreSQL 大会也已在骑马赶来的路上 (具体请留意中文社区官微),那就在 PostgreSQL 大会上再分享吧!

这两天在冲浪的时候,发现几个好用的小工具,其中 pg_collector 值得说道说道,5 秒快速上手,生成一份小而精悍的巡检报告。之前曾分享过另一款类似的巡检工具 pg_gather,详情戳 👉🏻 一款不错的巡检工具
pg_collector
pg-collector collects database information and presents it in a consolidated HTML file
pg_collector 是纯 SQL 脚本,也就意味着你可以按需加工,并且十分简单,照猫画虎,添加自己的巡检项。目前 pg_collector 支持到了 14,不过都大差不差,安装指定版本即可
[postgres@mypg pg-collector-pg-collector-V1-for-PostgreSQL-14]$ ll
total 136
-rw-rw-r-- 1 postgres postgres 226 Jun 23 2022 CHANGELOG.md
-rw-rw-r-- 1 postgres postgres 309 Jun 23 2022 CODE_OF_CONDUCT.md
-rw-rw-r-- 1 postgres postgres 3160 Jun 23 2022 CONTRIBUTING.md
drwxrwxr-x 2 postgres postgres 4096 Jun 23 2022 img
-rw-rw-r-- 1 postgres postgres 927 Jun 23 2022 LICENSE
-rw-rw-r-- 1 postgres postgres 105756 Jun 23 2022 pg_collector.sql
-rw-rw-r-- 1 postgres postgres 4536 Jun 23 2022 README.md
drwxrwxr-x 2 postgres postgres 4096 Jun 23 2022 sample_reports
安装之后会有一个 pg_collector.sql (此处基于 16 版本进行演示),为什么我会说 5 秒呢?没错,只需要简单运行一下 pg_collector.sql 即可
[postgres@mypg pg-collector-pg-collector-V1-for-PostgreSQL-14]$ psql
psql (16.1)
Type "help" for help.
postgres=# \i pg_collector.sql
Output format is html.
Report name and location: /tmp/pg_collector_postgres-2024-04-14_181706.html
psql:pg_collector.sql:104: ERROR: column "datlastsysoid" does not exist
LINE 1: ...ions, datconnlimit as database_connection_limit , datlastsys...
^
psql:pg_collector.sql:906: error: Did not find any settings.
此处有点不兼容,自己改造一下即可,执行完成之后,在 /tmp 目录下会生成一份 html 报告。由于巡检项较多,报告中大致包含如下内容:
数据库大小,使用情况 年龄使用 表、索引、序列使用情况:包含常规统计数据,以及膨胀,重复索引等 数据库负载 vacuum/analyze,还很贴心的进行了可视化,展示清理和分析进度 流复制,复制槽 2pc 锁等待 Toast Tables Mapping,这一点很方便 等待事件,等待事件将以往的"NULL"给改成了CPU,便于理解

各位可以自行体验,此处就不再赘述。

小结
pg_collector 和 pg_gather 类似,都是纯 SQL 巡检工具,包括了大多数的日常运维关心项,并且可以很容易基于其进行二次开发,pg_collector 相较于 pg_gather 的巡检项更多,pg_gather 会多一项"重要事件发现",即告诉你巡检过程中发现的一些值得你关注的点,十分 nice 的一个小特性。
另外,公众号开放留言啦!不容易,终于可以在文后进行交流了。
推荐阅读
Feel free to contact me
微信公众号:PostgreSQL学徒 Github:https://github.com/xiongcccc 微信:_xiongcc 知乎:xiongcc 墨天轮:https://www.modb.pro/u/3958




