计算CPU使用率【prometheus】
  TEZNKK3IfmPf 2023年11月13日 24 0

我们知道
CPU的使用率 = (所有非空闲状态CPU使用时间总和 )/(所有状态CPU时间总和)
由下列公式:
CPU使用时间总和 = 所有非空闲状态CPU使用时间总和 + 所有空闲状态CPU使用时间总和
得出:
CPU的使用率 = 1 - (所有空闲状态CPU使用时间总和 )/(所有状态CPU时间总和)

2.prometheus计算CPU使用率

CPU使用时间总和:node_cpu_seconds_total,表示各种占用的时间。

计算CPU使用率【prometheus】

2.1 CPU使用时间5m增量值

5m增量值 = 当前采样点值 - 5m前的采样点值

输入: increase(node_cpu_seconds_total[5m])

2.2 CPU空闲使用时间5m增量值

node_cpu_seconds_total的采样数据,是基于实现序列的key/vlue格式,而key是"mode"记录了采样的是CPU的那种状态的时间(user、sys、idle等)
输入:increase(node_cpu_seconds_total{mode=“idle”}[5m])

2.3 聚合多核CPU空闲使用时间5m增量值

通过采样数据,可以看到CPU空闲使用时间5m增量值,是每个cpu和都作为一个采样值,而每个虚机\物理机,大部分是多核的,所以需要聚合所有核数的空闲时间。

输入:sum(increase(node_cpu_seconds_total{mode=“idle”}[5m]))

通过结果可以看出,sum函数是将所有CPU核数时间想加,没有按照主机进行聚合,所以这时就需要引入=by (instance)=函数,它会把sum求和到一起的数值按照指定方式进行拆分,instance代表的是机器名。如果不写by (instance)的话就需要在{}中写明需要哪个实例的数据。

输入:sum(increase(node_cpu_seconds_total{mode=“idle”}[5m])) by (instance)

2.4 聚合单个机器多核CPU总使用时间5m增量值

输入:sum(increase(node_cpu_seconds_total[5m])) by (instance)

2.5 计算平均5分钟CPU使用率

输入:1- sum(increase(node_cpu_seconds_total{mode=“idle”}[5m])) by (instance)/sum(increase(node_cpu_seconds_total[5m])) by (instance)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   23   0   0 linuxCPU
  TEZNKK3IfmPf   2023年11月15日   35   0   0 ioside云原生
TEZNKK3IfmPf