issue 链接
背景
需求
对于系统运行的关键指标,需要通过 oepnTelemetry 机制进行上报,客户可以实时获取系统的内存、CPU负载和falsh寿命,保障系统稳定运行。
差距
BMC当前没有对运行的CPU/内存/Flash写入量/Flash寿命等指标的上报指标处理。
方案
BMC需要制定针对 系统CPU/内存,进程CPU/内存,Flash写入量/剩余寿命 的指标,并且通过 openTelemetry 机制接口进行上报。
评审点
评审点1:制定上报的指标以及属性
上报的指标和属性的详细信息如下:
| 指标名称 | 指标类型 | 指标单位 | 属性列表 | 属性描述 | 属性要求 | 描述 | 标准定义 |
|---|---|---|---|---|---|---|---|
| bmc.system.uptime | Gauge | s(秒) | 系统启动时间 | 必选 | BMC系统已经运行的时间 | 否,自定义指标 | |
| bmc.system.flash.io | Counter | KB(千字节) | flash.io.direction | IO操作的方向,取值有: read: write: |
必选 | BMC Flash的IO,按小时统计,单位:KB | 否,自定义指标 |
| bmc.system.flash.lifeleft | Gauge | percent(百分比) | 必选 | Flash剩余寿命 | 否,自定义指标 | ||
| bmc.process.cpu.usage | Gauge | percent(百分比) | cpu.mode | CPU的模式,包括:user,sys,idle | 必选 | 进程CPU的使用情况 | 否,自定义指标 |
| process.name | 进程名称 | 必选 | 否,自定义指标 | ||||
| bmc.process.memory.usage | Gauge | By(字节) | process.name | 进程名称 | 必选 | 进程使用的物理内存 | 否,自定义指标 |
| bmc.system.cpu.usage | Gauge | percent(百分比) | cpu.mode | CPU的模式,包括:user,sys,idle | 必选 | BMC CPU的使用情况 | 否,自定义指标 |
| bmc.system.memory.usage | Gauge | By(字节) | system.memory.state(string) | 内存的状态,包括:buffer,cache,free,used | 必选 | BMC使用的物理内存 | 否,自定义指标 |
评审结论
通过,具体结论如下:
- 同意新增 BMC系统的采集指标,指标具体有:
bmc.system.uptime:表征 BMC 系统的运行时间bmc.system.cpu.usage:表征 BMC 系统的 CPU 占用率bmc.system.memory.usage:表征 BMC 系统的 内存 占用率 - 同意新增 BMC Flash 的采集指标,指标具体有:
bmc.system.flash.io:表征 BMC Flash 的 IO 使用情况bmc.system.flash.lifeleft:表征 BMC Flash 的剩余寿命百分比 - 同意新增 BMC 进程的采集指标,指标具体有:
bmc.process.cpu.usage:表征 BMC 进程的 CPU 使用情况bmc.process.memory.usage:表征 BMC 进程的内存使用情况
遗留问题
1、指标的名称需要区分BMC和Host
结论:指标中针对 BMC 的指标,统一使用 bmc.xxx 前缀,已修改评审点描述。
2、Flash 指标中的属性需要命名准确
结论:指标名称以及属性名称已经修复,已修改评审点描述。
3、进程采集指标中对于进程名称需要命名准确。
结论:考虑到使用 cmdline name 会存在安全风险,因此进程名称属性还是使用 process.name, 取值保持和 service 的名称一致