# 弹性云服务器支持的进程监控指标（安装Agent）
#### 功能说明
通过在弹性云服务器中安装Agent插件，可以对主机内活跃进程的内存使用率、CPU使用率和打开文件数等指标进行监控。您可以通过配置自定义进程监控，查看进程数量及各进程消耗的CPU、内存、打开的文件数等信息，并为这些进程设置告警规则，及时关注进程数的变化，确保其正常运行。
本节定义了弹性云服务器上报云监控的进程监控指标。配置自定义进程监控的具体操作，请参考[进程监控](https://support.huaweicloud.com/usermanual-ces/ces_04_0023.html)。
![](https://support.huaweicloud.com/usermanual-ecs/public_sys-resources/note_3.0-zh-cn.png)
云监控服务最大支持4个层级维度，维度编号从0开始，编号3为最深层级。例如监控指标中的维度信息为"instance_id,mount_point"时，表示对应的监控指标的维度存在层级关系，且"instance_id"为0层，"mount_point"为1层。
#### 前提条件
已完成Agent插件的安装。具体操作，请参见[Agent安装](https://support.huaweicloud.com/usermanual-ces/ces_01_0029.html)。
#### 约束与限制
目前用户添加的进程名称不会做数量限制，但Agent采集时，只会采集用户最先配置的16个进程。
#### 命名空间
AGT.ECS
#### 进程监控指标说明
对于不同的操作系统、不同的弹性云服务器类型，在安装Agent后均默认支持查看以下进程监控指标。
表1进程监控指标说明 
| 指标                    | 指标名称                | 指标含义                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 取值范围        | 单位       | 进制 | 维度                                                                                                                                        | 监控周期（原始指标） |
|:---|:---|:---|:---|:---|:---|:---|:---|
| proc_pHashId_cpu     | (Agent) 进程CPU使用率 | 进程消耗的CPU百分比，pHashId是（进程名+进程ID）的md5值。 - 采集方式（Linux）：通过计算/proc/pid/stat的变化得出。  - 采集方式（Windows）：通过Windows API GetProcessTimes获取进程CPU使用率。                                                                                                                                                                                                                                                                                                                                                                                                      | 0-1\*CPU核心数 | %      | 不涉及 | instance_id                                                                                                                               | 1分钟        |
| proc_pHashId_mem      | (Agent) 进程内存使用率   | 进程消耗的内存百分比，pHashId是（进程名+进程ID）的md5值。 - 采集方式（Linux）： RSS\*PAGESIZE/MemTotal RSS: 通过获取/proc/pid/statm第二列得到 PAGESIZE: 通过命令getconf PAGESIZE获取 MemTotal：通过/proc/meminfo获取   - 采集方式（Windows）：使用Windows API procGlobalMemoryStatusEx获取内存总量，通过GetProcessMemoryInfo获取内存已使用量，计算两者比值得到内存使用率。   | 0-100       | %       | 不涉及  | instance_id                                                                                                                                                    | 1分钟        |
| proc_pHashId_file   | (Agent) 进程打开文件数    | 进程打开文件数，pHashId是（进程名+进程ID）的md5值。 - 采集方式（Linux）：通过执行ls -l /proc/pid/fd 可以查看数量。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                                          | ≥0          | Count  | 不涉及   | instance_id                                                                                                                                                       | 1分钟        |
| proc_running_count | (Agent) 运行中进程数    | 该指标用于统计测量对象处于运行状态的进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                            | ≥0          | Count   | 不涉及 | instance_id                                                                                                                                                     | 1分钟         |
| proc_idle_count    | (Agent) 空闲进程数     | 该指标用于统计测量对象处于空闲状态的进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                              | ≥0           | Count    | 不涉及   | instance_id                                                                                                                                                     | 1分钟          |
| proc_zombie_count   | (Agent) 僵死进程数      | 该指标用于统计测量对象处于僵死状态的进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                              | ≥0          | Count    | 不涉及    | instance_id                                                                                                                                                      | 1分钟          |
| proc_blocked_count | (Agent) 阻塞进程数     | 该指标用于统计测量对象被阻塞的进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                             | ≥0        | Count    | 不涉及 | instance_id                                                                                                                                                     | 1分钟       |
| proc_sleeping_count | (Agent) 睡眠进程数     | 该指标用于统计测量对象处于睡眠状态的进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                     | ≥0        | Count   | 不涉及   | instance_id                                                                                                                                                     | 1分钟          |
| proc_total_count    | (Agent) 系统进程数      | 该指标用于统计测量对象的总进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：通过psapi.dll系统进程状态支持模块得到进程总数。                                                                                                                                                                                                                                                                                                                                                                                                    | ≥0         | Count | 不涉及   | instance_id                                                                                                                                                       | 1分钟         |
| proc_specified_count                        | (Agent) 指定进程数                           | 该指标用于统计测量对象指定的进程数。 - 采集方式（Linux）：通过统计 /proc/pid/status 中Status值获取每个进程的状态，进而统计各个状态进程总数。  - 采集方式（Windows）：通过psapi.dll系统进程状态支持模块得到进程总数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | ≥0                                | Count  | 不涉及  | - instance_id  - instance_id,proc   | 1分钟                               |
| specified_process_file                       | (Agent) 指定进程打开文件数                         | 该指标用于统计测量对象指定进程打开的文件数。 - 采集方式（Linux）：通过执行ls -l /proc/pid/fd 可以查看数量。  - 采集方式（Windows）：暂不支持。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ≥0                                 | Count    | 不涉及   | - instance_id  - instance_id,proc   | 1分钟                                |
   
 #### 维度
| 维度        | Key         | Value                                                                                                                                    |
|:---|:---|:---|
| 云服务器      | instance_id | 云服务器ID。 该取值可通过云监控服务的[查询主机监控维度指标信息](https://support.huaweicloud.com/api-ces/ListAgentDimensionInfo.html)获取。 |
| 云服务器 - 进程 | proc        | 云服务器的进程。 该取值可通过云监控服务的[查询主机监控维度指标信息](https://support.huaweicloud.com/api-ces/ListAgentDimensionInfo.html)获取。  |
   
#### 使用接口查询多层级维度指标示例
对于有多层测量维度的测量对象，使用接口查询监控指标时，需要代入具体指标的维度层级关系。
例如，需要查询弹性云服务器中磁盘挂载点的剩余存储量（disk_free），该指标的维度信息为"instance_id,mount_point"，表示instance_id为0层，mount_point为1层。
- 通过API查询单个监控指标时，mount_point的维度信息代入样例如下：
  ```
  dim.0=instance_id,3d65c1ac-9a9f-4c5f-a054-35184a087bb2&dim.1=mount_point,6666cd76f96956469e7be39d750cc7d9
  ```
  其中，3d65c1ac-9a9f-4c5f-a054-35184a087bb2和6666cd76f96956469e7be39d750cc7d9分别为instance_id和mount_point的维度值，具体获取方法请参见[维度]表格中的获取指导。
  
- 通过API批量查询监控指标时，mount_point的维度信息代入样例如下：
  ```
  "dimensions": [ 
                  { 
                      "name": "instance_id", 
                      "value": "3d65c1ac-9a9f-4c5f-a054-35184a087bb2"    
                  }, 
                  { 
                      "name": "mount_point", 
                      "value": "6666cd76f96956469e7be39d750cc7d9" 
                  } 
              ]
  ```
  其中，3d65c1ac-9a9f-4c5f-a054-35184a087bb2和6666cd76f96956469e7be39d750cc7d9分别为instance_id和mount_point的维度值，具体获取方法请参见[维度]表格中的获取指导。
  
 
#### 相关文档
- 配置管理自定义进程监控，请参考[进程监控](https://support.huaweicloud.com/usermanual-ces/ces_04_0023.html)。
- [如何通过修改配置文件调整进程采集频率？](https://support.huaweicloud.com/ces_faq/ces_faq_0128.html)
- [Agent支持的系统有哪些？](https://support.huaweicloud.com/ces_faq/ces_faq_0024.html)
- [为什么中文操作系统下安装了CES Agent后查看操作系统监控没有指标值？](https://support.huaweicloud.com/ces_faq/ces_faq_0125.html)
 
