Pgsentinel发布了
同名的pgsentinel扩展名(
github仓库 ),该扩展将pg_active_session_history视图添加到PostgreSQL,即活动会话的历史记录(类似于Oracle v $ active_session_history)。
实际上,这些只是来自pg_stat_activity的每秒钟快照,但有一些要点:
- 所有累积的信息仅存储在RAM中,消耗的内存量由最后存储的记录数决定。
- 添加了queryid字段-与pg_stat_statements扩展名相同的queryid(需要初步安装)。
- 添加了top_level_query字段-从中调用当前查询的查询文本(如果使用pl / pgsql)
pg_active_session_history字段的完整列表: 专栏 类型------------------ + -------------------------- ash_time | 带时区的时间戳记| oid datname | 文字pid | 整数usesysid | oid用户名| 文字application_name | 文字client_addr | 文字client_hostname | 文字client_port | 整数backend_start | 带时区的时间戳xact_start | 带时区的时间戳记query_start | 带时区的时间戳记state_change | 带时区的时间戳记wait_event_type | 文字wait_event | 文字状态| 文字backend_xid | xid backend_xmin | xid top_level_query | 文字查询| 文字queryid | bigint backend_type | 文字
尚无用于安装的现成软件包。 建议下载源代码并自己构建库。 首先,您需要为服务器安装“ devel”软件包,并在PATH变量中写入pg_config的路径。 我们收集:
cd pgsentinel / src
使
进行安装
向postgres.conf添加参数:
shared_preload_libraries ='pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track =全部
#内存中保存的最近条目数
pgsentinel_ash.max_entries = 10000
重新启动PostgreSQL并创建扩展名:
创建扩展pgsentinel;
积累的信息使您能够回答以下问题:
- 会议花费最多的时间是什么期望?
- 哪些会议最活跃?
- 哪些查询最活跃?
您当然可以通过SQL查询来获得这些问题的答案,但是通过图形突出显示时间间隔(使用鼠标突出显示时间间隔)更加方便。 您可以使用免费的
PASH-Viewer程序执行此操作(可以在“
发行”部分中下载收集的二进制文件)。
在启动时,PASH-Viewer(从版本0.4.0开始)检查pg_active_session_history视图是否存在,如果存在,则从其中加载整个累积的历史记录,并继续读取新的传入数据,每15秒更新一次计划。
