pgsentinel
活跃会话历史
仓库
pgsentinel/pgsentinel
https://github.com/pgsentinel/pgsentinel
源码
pgsentinel-1.5.1.tar.gz
pgsentinel-1.5.1.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgsentinel | 1.5.1 | 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 |
|---|
Requires preload alongside pg_stat_statements.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.5.1 | 1817161514 | pgsentinel | - |
| RPM | PGDG | 1.5.1 | 1817161514 | pgsentinel_$v | - |
| DEB | PGDG | 1.5.1 | 1817161514 | postgresql-$v-pgsentinel | - |
构建
您可以使用 pig build 命令构建 pgsentinel 扩展的 RPM / DEB 包:
安装
您可以直接安装 pgsentinel 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
pig
dnf
apt
预加载配置:
创建扩展:
用法
来源:
pgsentinel 通过在固定时间间隔内采样 pg_stat_activity 并将活动与 pg_stat_statements 查询统计信息关联来记录活跃会话历史。它最近的样本存储在由后台工作进程管理的共享内存环形缓冲区中。
重启 PostgreSQL,然后在用于工作的数据库中启用这两个扩展:
活跃会话历史
除了 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:
示例:等待分析
配置
| 参数 | 默认值 | 描述 |
|---|---|---|
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.5.0 将 queryid 与 nested_queryid 分开:PostgreSQL 16 及以上的前者来自活动查询标识,后者来自内层解析语句;更早版本中二者一致。升级会重建历史视图,须先检查依赖视图及授权。
1.5.1 撤销 get_parsedinfo(int) 的 PUBLIC 执行权限,因为它能返回其他后端的查询文本及字面量。安装新文件后必须应用 SQL 升级,并仅向确有需要的角色授权:
历史记录位于有限的共享内存环形缓冲区中,需要长期保留时应另行导出。采样查询文本可能包含敏感值,还应检查历史视图的访问权限。上游 CI 覆盖 PostgreSQL 10–19。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)