pgmetrics 介绍
pgmetrics 是一个开源的、零依赖的、单二进制的工具,它可以轻松收集和报告PostgreSQL指标,用于脚本编写、自动化和故障排除。
pgmetrics 从正在运行的PostgreSQL服务器收集350多个指标,并以易于阅读的文本格式显示,或者将其导出为JSON和CSV用于脚本编写。
pgmetrics 是用Go语言编写的,可以作为零依赖的静态链接命令行工具下载,适用于许多平台。 它是开源的,并在Apache许可证2.0下获得许可。
pgmetrics 安装
由于 pgmetrics 是单独分发,且没有依赖的二进制包,所以安装过程分厂简单,只需下载最新版本即可运行使用。
wget https://github.com/rapidloop/pgmetrics/releases/download/v1.15.0/pgmetrics_1.15.0_linux_amd64.tar.gz
tar xvf pgmetrics_1.15.0_linux_amd64.tar.gz
cd pgmetrics_1.15.0_linux_amd64
打印版本信息:
./pgmetrics -V
pgmetrics 1.15.0
pgmetrics 基本用法
- 打印帮助信息
pgmetrics --help
- 连接到指定主机和用户
pgmetrics -h127.0.0.1 -Uyan
- 以 json 格式输出
pgmetrics -f json
pgmetrics 指标示例
- 服务器:版本,系统标识符,时间线,事务id环绕,检查点延迟
- 复制:主端、备用、物理和逻辑复制槽位
- WAL归档:归档率,WAL和ready文件计数,最后成功和失败时间
- BG Writer:检查点率,检查点总数(计划+请求),缓冲区
- Vacuum:正在进行的自动/手动真空进度,最后分析/真空,设置
- 表空间:文件系统的位置、大小、磁盘和inode使用情况
- 数据库:大小、膨胀、禁用触发器、安装的扩展、临时文件、事务id封装、死锁、冲突
- 角色:用户、组、成员
- Active backends:事务运行时间过长,事务处于空闲状态,等待锁
- 表:清空、分析、行估计、idx和seq扫描、缓存命中率、HOT更新率、大小、膨胀
- 索引:缓存命中率、扫描、读取/扫描的行、获取/扫描的行
- 序列:缓存命中率
- 系统指标:内核、平均负载、内存和磁盘使用情况
- Settings:当前值和不同的默认值
- 慢查询:来自pg_stat_statements(如果可用)
- 锁:授予锁和等待锁,来自pg_locks
- 作业进度:分析、备份、集群、复制、创建索引和真空作业的进度
- Blocked queries:阻塞的查询,以及它们正在等待的查询
除此之外,还支持从其他相关服务收集指标:
- PgBouncer:收集和报告连接PgBouncer管理数据库时的PgBouncer实例信息。 从v1.11.0开始也支持Odyssey。
- 日志文件:处理和提取PostgreSQL日志文件中的信息。 (在v1.8.0中添加)
- AWS RDS、Aurora:从AWS RDS数据库收集RDS指标和增强的监控指标,包括AWS RDS Aurora(在v1.9.0中添加)
- Citus:收集关于Citus扩展的信息(在v1.10.0中添加)
- Azure:为PostgreSQL(单服务器,灵活服务器和托管Citus)从Azure数据库收集指标。 (在v1.13.0中添加)
- Pgpool:从Pgpool v4收集指标和信息。 X实例(在v1.15.0中添加)