Skip to content

Chan-I/PostgreSQL_ProcessCollector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

闲着没事写着玩的PostgreSQL扩展,比master分支的复杂一点。

1.Cpro Analyzer —— 统计某个时间段每个CPU上运行过process的情况

功能描述:统计CPU每个核心上运行过的进程数量,每1分钟向表中写入一次,每24小时统计数据归零,数据只保留7天。

编译参数: 首先将代码拷贝至PostgreSQL根目录的src/pl下; 接着执行:cd src/pl/cpro ; make -j4 ; make install

GUC参数:

参数名称 参数说明 参数范围 默认值

对应函数

本Extension会在后台启动一个常驻进程,用于实时监控CPU核心上的进程运行情况,同时会将结果每一分钟写入数据库一次, 同时提供了两个基本函数,一个是查询某个时刻时的统计情况;另一个是统计一段时间内的使用情况的变化量。

1.cpro_query(timestamp); 显示某个时间点统计的cpro情况,输入参数为字符串类型的timestamp内容。

postgres=# select * from cpro_query('2022-06-15 01:37:45.545044');
          cap_time          | pid_num | cpu_num 
----------------------------+---------+---------
 2022-06-15 01:37:45.545044 |       7 |       2
 2022-06-15 01:37:45.545044 |      11 |      49
 2022-06-15 01:37:45.545044 |       1 |      51
 2022-06-15 01:37:45.545044 |       1 |      52
 2022-06-15 01:37:45.545044 |       6 |      53
(5 rows)

2.cpro_time(timestamp1, timestamp2) 显示某两个时间点的cpro情况,并将差异数据进行了展示。**

需要注意的是,text1的时间需要比text2提前,否则会提示错误信息。

postgres=# select * from cpro_time('2022-06-15 01:37:45.545044','2022-06-15 01:41:45.595612');   <--   正确情况
 cpu_num | pid_num_time1 | pid_num_time2 | pid_variation 
---------+---------------+---------------+---------------
       2 |             7 |             7 |             0
      49 |            11 |            11 |             0
      51 |             1 |             1 |             0
      52 |             1 |             1 |             0
      53 |             6 |             6 |             0
(5 rows)

postgres=# select * from cpro_time('2022-06-15 01:41:45.595612','2022-06-15 01:37:45.545044');	<--	  错误情况
ERROR: Usage: cpro_time(start_time, end_time)
		 start_time must by ahead of end_time!

About

Process Info Collector Extension for PostgreSQL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published