pgsentinel
活跃会话历史
仓库
pgsentinel/pgsentinel
https://github.com/pgsentinel/pgsentinel
源码
pgsentinel-1.4.2.tar.gz
pgsentinel-1.4.2.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgsentinel | 1.4.2 | STAT | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 6410 | pgsentinel | 否 | 是 | 是 | 是 | 否 | 是 | - |
| 相关扩展 | pg_datasentinel pg_profile pg_stat_monitor pg_wait_sampling pg_stat_ch pgmonitor system_stats pgnodemx powa pg_stat_statements |
|---|
Package/source release and PIGSTY RPM are 1.4.2; shipped pgsentinel.control and PGDG DEB remain 1.4.1.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | MIXED | 1.4.2 | 1817161514 | pgsentinel | - |
| RPM | PIGSTY | 1.4.2 | 1817161514 | pgsentinel_$v | - |
| DEB | PGDG | 1.4.2 | 1817161514 | postgresql-$v-pgsentinel | - |
构建
您可以使用 pig build 命令构建 pgsentinel 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 pgsentinel 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
预加载配置:
BASH
创建扩展:
SQL
用法
来源:
pgsentinel 通过在固定时间间隔内采样 pg_stat_activity 并将活动与 pg_stat_statements 查询统计信息关联来记录活跃会话历史。它最近的样本存储在由后台工作进程管理的共享内存环形缓冲区中。
INI
重启 PostgreSQL,然后在用于工作的数据库中启用这两个扩展:
SQL
活跃会话历史
SQL
除了 pg_stat_activity 之外的关键列:
| 列 | 描述 |
|---|---|
ash_time | 采样时间戳 |
top_level_query | PL/pgSQL 的顶级语句(如果适用) |
query | 包含实际参数值的语句 |
cmdtype | 语句类型:SELECT, UPDATE, INSERT, DELETE, UTILITY, UNKNOWN, NOTHING |
queryid | 与 pg_stat_statements 的链接 |
blockers | 阻塞进程的数量 |
blockerpid | 阻塞进程的 PID |
blocker_state | 阻塞者的状态 |
查询统计历史
启用时,pgsentinel 还会并发地采样 pg_stat_statements:
SQL
示例:等待分析
SQL
配置
| 参数 | 默认值 | 描述 |
|---|---|---|
pgsentinel_ash.sampling_period | 1 | 每秒采样周期 |
pgsentinel_ash.max_entries | 1000 | ASH 的环形缓冲区大小 |
pgsentinel.db_name | postgres | 工作连接的数据库 |
pgsentinel_ash.track_idle_trans | false | 跟踪 idle-in-transaction 会话 |
pgsentinel_pgssh.max_entries | 1000 | pg_stat_statements 历史的环形缓冲区大小 |
pgsentinel_pgssh.enable | false | 启用 pg_stat_statements 历史 |
版本和操作注意事项
- 发行版 1.4.2 修复了 PostgreSQL 17 上的查询统计历史问题,其
pg_stat_statements视图将阻塞 I/O 时间列重命名为shared_blk_read_time和shared_blk_write_time。 - 同一发行版在不改变 SQL 视图或 GUC 表面的情况下增加了对 PostgreSQL 19 的构建兼容性。
- 环形缓冲区历史是内存驻留且有限的;只有在考虑共享内存使用情况后才能增加条目限制,并在需要更长保留时间时导出样本。
- 查询文本可以包含字面量参数值。当语句可能包括敏感数据时,应限制对历史视图的访问。