
# 统计信息函数
#### pg_stat_get_activity(integer)
描述：返回一个关于带有特殊PID的后台进程的记录信息，当参数为NULL时，则返回每个活动的后台进程的记录。返回结果是PG_STAT_ACTIVITY视图中的一个子集，不包含connection_info列。
返回值类型：setof record
#### gs_stack()
描述：获取CN或DN进程的堆栈信息，函数入参actor_name、tid均需要通过视图或其他函数进行获取，不支持lwtid。该函数仅25.5.0及以上集群版本支持。
gs_stack()提供了比gdb、gstack等命令更灵活、更快速的堆栈获得手段。仅建议管理员用户在问题分析定位过程中使用，不建议作为日常的监控工具使用。
返回值字段：
- actor_name：线程所在的actor名称。
- tid：线程ID。
- lwtid：轻量级线程ID。
- stack：tid或lwtid线程对应的堆栈信息。
 
gs_stack()函数有三种使用方式：
- 方式一：gs_stack()函数入参为空，表示打印CN和DN所有线程的堆栈。
  ![](https://support.huaweicloud.com/devg-fabric/public_sys-resources/note_3.0-zh-cn.png)
  - 可通过gsql连接CN执行。
  
  - 获取CN和所有DN上所有线程的运行堆栈，运行时间长，对正常业务运行有影响，不建议频繁使用。
   
  ```
  select * from gs_stack();
    actor_name  |       tid       | lwtid  |                                                                                                                                                                                                                                                                                                                               
                                     stack                                                                                                                                                                                                                                                                                                                                 
  --------------+-----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  ----------------------------------
   coordinator1 | 106927505866816 | 186762 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
                                   +
                |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
                                   +
                |                 |        | __poll + 0x4f                                                                                                                                                                                                                                                                                                                 
                                   +
                |                 |        | poll + 0xa0                                                                                                                                                                                                                                                                                                                   
                                   +
                |                 |        | poll(pollfd*, unsigned long, int, void (*)()) + 0x19e                                                                                                                                                                                                                                                                         
                                   +
                |                 |        | ServerLoop() + 0x570                                                                                                                                                                                                                                                                                                          
                                   +
                |                 |        | PmStartupThreads() + 0x167                                                                                                                                                                                                                                                                                                    
                                   +
                |                 |        | PostmasterMain(int, char**) + 0x22f                                                                                                                                                                                                                                                                                                                         
                |                 |        | 
   coordinator1 | 106927505998400 | 186773 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
                                   +
                |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
                                   +
                |                 |        | 0x7ffb45fb41aa                                                                                                                                                                                                                                                                                                                
                                   +
                |                 |        | pthread_cond_clockwait + 0x1e2                                                                                                                                                                                                                                                                                                
                                   +
                |                 |        | std::__condvar::wait_until(std::mutex&, int, timespec&) + 0x39
  ```
  

- 方式二：gs_stack(actor_name)函数入参值为指定的actor_name，表示打印名称为actor_name的actor上所有线程的堆栈。
  ![](https://support.huaweicloud.com/devg-fabric/public_sys-resources/note_3.0-zh-cn.png)
  - 可通过gsql连接CN执行。
  
  - actor_name必须为CN或DN的名字，否则会报错"invalid actor_name"。
  
  - actor_name需通过其他视图或函数获取（例如函数pgxc_query_wait_status）。
   
  ```
  select * from gs_stack('coordinator1');
    actor_name  |       tid       | lwtid  |                                                                                                                                                                                                                                                                                                                               
                                     stack                                                                                                                                                                                                                                                                                                                                 
  --------------+-----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  ----------------------------------
   coordinator1 | 106927505866816 | 186762 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
                                   +
                |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
                                   +
                |                 |        | __poll + 0x4f                                                                                                                                                                                                                                                                                                                 
                                   +
                |                 |        | poll + 0xa0                                                                                                                                                                                                                                                                                                                   
                                   +
                |                 |        | poll(pollfd*, unsigned long, int, void (*)()) + 0x19e                                                                                                                                                                                                                                                                         
                                   +
                |                 |        | ServerLoop() + 0x570                                                                                                                                                                                                                                                                                                          
                                   +
                |                 |        | PmStartupThreads() + 0x167                                                                                                                                                                                                                                                                                                    
                                   +
                |                 |        | PostmasterMain(int, char**) + 0x22f
  ```
  
  
- 方式三：gs_stack(actor_name,tid)函数入参值为指定的actor_name和tid，表示打印名称为actor_name的actor上指定tid线程的堆栈。
  ![](https://support.huaweicloud.com/devg-fabric/public_sys-resources/note_3.0-zh-cn.png)
  - 可通过gsql连接CN执行。
  
  - actor_name必须为CN或DN的名字，否则会报错"invalid actorName"。
  
  - actor_name和tid需通过其他视图或函数获取（例如函数pgxc_query_wait_status）。
  
  - 获取指定CN或DN进程内指定线程的运行堆栈，运行时间短，对正常业务运行无影响，推荐使用。
   
  ```
  select * from gs_stack('coordinator1',106927505998400);
    actor_name  |       tid       | lwtid  |                                                                                                                                                                                       stack                                                                                                                                   
  --------------+-----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  ----------------------------------------------------
   coordinator1 | 106927505998400 | 186773 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
                                                     +
                |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
                                                     +
                |                 |        | 0x7ffb45fb41aa                                                                                                                                                                                                                                                                                                                
                                                     +
                |                 |        | pthread_cond_clockwait + 0x1e2                                                                                                                                                                                                                                                                                                
                                                     +
                |                 |        | std::__condvar::wait_until(std::mutex&, int, timespec&) + 0x39                                                                                                                                                                                                                                                                
                                                     +
                |                 |        
  (1 row)
  ```
  
 
#### gs_wlm_session_statistics()
描述：获取执行中SQL语句的监控信息，无法获取执行结束的SQL语句监控信息，返回结果每一行代表一个语句。
函数返回字段：
| 字段名称                         | 类型                   | 描述                                                                         |
|:---|:---|:---|
| session_id                   | text                 | 语句的Session ID。                                                             |
| statement_id                 | text                 | 语句ID。                                                                      |
| start_time                   | timestampt with zone | 语句起始时间。                                                                    |
| duration                     | bigint               | 语句运行时间。 单位：ms                |
| estimate_total_time          | bigint               | 估计的语句运行时长。 单位：ms            |
| estimate_left_time           | bigint               | 估计语句剩余运行时长 单位：ms             |
| cn_actor_info                | text                 | CN的Serverless信息。                                                           |
| dn_actor_info                | text                 | DN的Serverless信息。                                                           |
| startup_coordinator_duration | bigint               | 启动CN时长。 单位：ms                |
| create_session_duration      | bigint               | 创建Session时长。 单位：ms           |
| enqueue_statement_duration   | bigint               | 语句加入任务队列时长。 单位：ms            |
| queue_duration               | bigint               | 语句在任务队列中排队时长。 单位：ms         |
| write_resultset_duration     | bigint               | 语句写结果集时长。 单位：ms              |
| queryid                      | bigint               | Debug Query的ID。                                                            |
| schemaname                   | text                 | 语句执行时的Schema名称。                                                            |
| query                        | text                 | 语句。                                                                        |
| query_plan                   | text                 | explain信息                                                                  |
| tid                          | bigint               | 线程ID。                                                                      |
| parse_time                   | bigint               | 从解析到执行开始之前的时间。 单位：ms         |
| estimate_memory              | int                  | 语句估计内存。 单位：MB                 |
| min_dn_time                  | bigint               | 最小DN时长。 单位：ms              |
| max_dn_time                  | bigint               | 最大DN时长。 单位：ms                 |
| average_dn_time              | bigint               | 平均DN时长。 单位：ms                |
| dn_time_skew_percent         | int                  | DN时长偏斜百分比。 单位：%               |
| dn_min_cpu_time              | bigint               | 最小DN CPU时长。 单位：ms            |
| dn_max_cpu_time              | bigint               | 最大DN CPU时长。 单位：ms             |
| dn_average_cpu_time          | bigint               | 平均DN CPU时长。 单位：ms           |
| dn_total_cpu_time            | bigint               | DN CPU总时长。 单位：ms             |
| dn_cpu_skew_percent          | int                  | DN CPU时长偏斜百分比。 单位：%          |
| dn_min_peak_memory           | int                  | 所有DN最小峰值内存。 单位：MB           |
| dn_max_peak_memory           | int                  | 所有DN最大峰值内存。 单位：MB           |
| dn_average_peak_memory       | int                  | 所有DN平均峰值内存。 单位：MB          |
| dn_memory_skew_percent       | int                  | 内存倾斜率。 单位：%                   |
| dn_spill_num                 | int                  | 下盘DN数量                                                                     |
| dn_spill_count               | int                  | 下盘DN次数总量                                                                   |
| dn_min_spill_size            | bigint               | 最大下盘Size。 单位：MB                |
| dn_max_spill_size            | bigint               | 最小下盘Size。 单位：MB                |
| dn_average_spill_size        | bigint               | 平均下盘Size。 单位：MB            |
| dn_spill_skew_percent        | int                  | 下盘倾斜率。 单位：%                 |
| dn_write_disk_total_size     | bigint               | dn下盘写磁盘总量。 单位：MB            |
| dn_write_disk_max_size       | bigint               | dn最大下盘写磁盘量。 单位：MB            |
| dn_write_disk_min_size       | bigint               | dn最小下盘写磁盘量。 单位：MB            |
| dn_spill_obs_total_size      | bigint               | dn下盘写OBS总量。 单位：MB            |
| dn_spill_obs_max_size        | bigint               | dn最大下盘写OBS量。 单位：MB            |
| dn_spill_obs_min_size        | bigint               | dn最小下盘写OBS量。 单位：MB           |
| dn_write_obs_total_size      | bigint               | dn下盘直写OBS总量。 单位：MB          |
| dn_write_obs_max_size        | bigint               | dn下盘最大直写OBS量。 单位：MB         |
| dn_write_obs_min_size        | bigint               | dn下盘最小直写OBS量。 单位：MB        |
| cn_spill_count               | int                  | cn下盘次数                                                                     |
| cn_spill_size                | bigint               | cn下盘总量。 单位：MB             |
| cn_spill_obs_size            | bigint               | cn下盘写OBS量。 单位：MB              |
| cn_write_obs_size            | bigint               | cn下盘直写OBS量。 单位：MB           |
| cn_write_obs_disk_size       | bigint               | cn下盘写本地磁盘量。 单位：MB          |
| disk_cache_hit_ratio         | numeric              | 磁盘缓存命中率。                                                                   |
| disk_cache_disk_read_size    | bigint               | 磁盘缓存读取大小。 单位：B               |
| disk_cache_disk_write_size   | bigint               | 磁盘缓存写入大小。 单位：B              |
| disk_cache_remote_read_size  | bigint               | 磁盘缓存远程读取大小。 单位：B             |
| disk_cache_remote_read_time  | bigint               | 磁盘缓存远程读取次数。 单位：次              |
| vfs_scan_bytes               | bigint               | OBS 文件系统扫描字节数。 单位：B           |
| vfs_remote_read_bytes        | bigint               | OBS 文件系统远程读取字节数。 单位：B       |
| disk_cache_load_time         | bigint               | 磁盘缓存本地加载时间。 单位：us            |
| disk_cache_conflict_count    | bigint               | 磁盘缓存块哈希冲突次数。 单位：次            |
| disk_cache_error_count       | bigint               | 磁盘缓存错误次数。 单位：次                |
| disk_cache_error_code        | bigint               | 磁盘缓存错误码。                                                                   |
| obs_io_req_avg_rtt           | bigint               | OBS IO请求平均往返时间。 单位：us          |
| obs_io_req_avg_latency       | bigint               | OBS IO请求平均延迟。 单位：us          |
| obs_io_req_latency_gt_1s     | bigint               | OBS IO请求延迟大于1秒的次数。 单位：次      |
| obs_io_req_latency_gt_10s    | bigint               | 查询的OBS IO请求延迟大于10秒的次数。 单位：次 |
| obs_io_req_count             | bigint               | OBS IO请求次数。 单位：次              |
| obs_io_req_count             | bigint               | OBS IO请求重试次数。 单位：次            |
| obs_io_req_rate_limit_count  | bigint               | OBS IO请求速率限制次数。 单位：次         |
   
#### pg_get_actor_stat()
描述：获取一些监控事项的统计信息，监控事项包括创建CN，启动CN，创建会话，语句加入队列，执行语句，写结果集，获取执行状态，获取执行结果。每发生一次上述事项，就记录一次统计信息。
返回值类型：
| 字段名称        | 类型                   | 描述        |
|:---|:---|:---|
| event_name  | text                 | 监控事项名称。   |
| object_name | text                 | 标识监控事项ID。 |
| start_time  | timestampt with zone | 监控事项开始时间。 |
| end_time    | timestampt with zone | 监控事项结束时间。 |
| comment     | text                 | 具体内容。     |
   
