几年前,在处理postgres性能中的另一个问题时,我不得不深入研究postgres统计信息。 在研究视图和功能时,我发现自己认为使用默认值并不十分方便。
实际上,在Postgres中,很多指标都以表示形式和函数的形式表示。 一方面,非常方便,编写了SELECT并接收了数据。 另一方面,这样的定期著作有些累人。
同时,我不仅需要一次看一个雕像,还需要跟踪它的变化。 我不记得是什么确定的信息,也许您必须查看复制滞后的变化,或者特定请求被调用的频率...
因此,在想到自己有足够的工具后,我开始为自己的任务寻找实用程序,但是,a,我找不到适合我的东西。
pgCenter就是这样
产生的 。
最初,它是一个控制台实用程序,被认为是一种易于使用的工具,它在类似顶部的界面中可以显示后统计数据的变化。 但是,考虑到在进行Postgres故障排除期间,您仍然需要掌握系统指标,因此还添加了系统统计信息... CPU,内存,交换,磁盘和网络接口利用率。 然后才添加其他管理功能,例如查看配置和编辑配置,使用日志,拍摄请求和客户端的功能。 总体而言,功能的数量逐渐增加……并且用户提出了如何使该工具变得更好的不同想法。 今天,经过一些开发,我终于准备提出一个新版本,其中pgCenter发生了很大变化。
最主要也是最重要的变化是pgCenter现在是用Go编写的。 它最初是用C语言编写的,但是老实说,在Go上,我可以更轻松地实现想法并添加新功能。 另一个积极的功能是分发-可执行文件是一个二进制文件,您只需要下载,解压缩和使用即可。
另一个重大创新是pgenter现在不仅是统计的顶级查看器。 现在可以将统计信息转储到本地文件,然后在必要时进行查看。 当没有临时监视或需要在对临时虚拟机或容器进行基准测试期间收集统计信息时,可以使用它。 结果,结果是类似于
oracle statspack或
sysstat软件包中的 sar的东西。 在这种情况下,您不需要在基础级别上隔离任何东西,也不需要其他功能,等等。
结果,我们在一个二进制文件中获得了3个实用程序,它们都像
git或
perf一样被称为单独的子命令。
在此基础上,重大创新结束,并且仍有少量改进。 它们主要与顶级查看者有关:
- 现在,默认情况下,将显示活动统计信息,而不是数据库的统计信息-谁连接,执行什么请求,持续多长时间等等。 经验表明,最经常需要评估当前活动,因此立即显示此特定雕像可能是有意义的。
- 在活动统计信息中,您现在可以同时看到后台进程(在postgres 10中添加)和不执行任何操作的空闲客户端(通过热键启用)。 以前,由于无用,根本没有显示空闲,但是很少有人突然需要它。
- 与表相关的统计信息以前在两个单独的视图中显示,现在所有统计信息都合并并显示在一个视图中。
- 过滤功能现在支持正则表达式,您可以更灵活地设置要确切查看的参数……表名,索引,函数,查询等。
我可能忘了提及其他一些功能,但我认为列出了最有趣的功能。
到此为止,所有已经在使用我敦促要更新的实用程序的人,以及所有第一次听到的人,我都敦促您尝试或观看一个小型演示。

报告中也有一个
演示文稿 ,尽管在那里描述了旧版本,但是也有必要看一下。
当然,我正在等待反馈和错误报告。 祝大家有美好的一天!