ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Prometheus 查询语言 PromQL 的 CPU 使用率计算方法

2021-11-25 18:32:53  阅读:288  来源: 互联网

标签:increase idle 分钟 5m Prometheus PromQL 增量 查询语言 cpu


参考文档:https://blog.csdn.net/qq_35753140/article/details/105121525

--------------
cpu使用率
--------------

100 * (1 - sum by (instance)(increase(node_cpu_seconds_total{mode="idle"}[5m])) / sum by (instance)(increase(node_cpu_seconds_total[5m])))

会将所有主机的CPU使用率显示在一个panel中

 

以下是对参考文档的一些备注说明:

increase(node_cpu_seconds_total{cpu="0",mode="idle"}[5m])

首先 node_cpu_seconds_total 表示的是 系统自开机以来,cpu的总时间 单位 秒
{cpu="0"} 表示的是第一颗CPU
{mode="idle"} 表示的是CPU处于idle状态
[5m] 表示的是5分钟前的数值

increase 表示增量

13:00 13:45 13:50
启动 13000 此刻13567

[5m] 就表示 13:45

increase 就表示 13:45 ~ 13:50 之间的增量 即 567

cpu0 5分钟内处于空闲状态的时间占比
increase(node_cpu_seconds_total{cpu="0",mode="idle"}[5m]) / increase(node_cpu_seconds_total{cpu="0"}[5m])

首先限定 CPU0
然后限定 5分钟

针对CPU0
在这5分钟内,处于idle状态的增量为 20
在这5分钟内,总增量(user + sys + idle + ...) 500

则这5分钟内,百分比为 20 / 500 = 4%

一个服务器可能有4颗CPU
上面计算了1个CPU的

sum (increase(node_cpu_seconds_total{mode="idle"}[5m])) / sum (increase(node_cpu_seconds_total[5m]))

increase(cpu0 idle [5m]) 5分钟的增量 20
increase(cpu1 idle [5m]) 5分钟的增量 30
increase(cpu2 idle [5m]) 5分钟的增量 40
increase(cpu3 idle [5m]) 5分钟的增量 70

sum() 计算总和 20 + 30 + 40 + 70 = 160

increase(cpu0 [5m]) 5分钟的增量 1000
increase(cpu1 [5m]) 5分钟的增量 1200
increase(cpu2 [5m]) 5分钟的增量 1300
increase(cpu3 [5m]) 5分钟的增量 1500

sum() 计算总和 1000 + 1200 + 1300 + 1500 = 5000

一台服务器 5分钟内 处于idle状态的时间 占 总CPU时间的百分比

160 / 5000 = 3.2% (0.032)

如果要监控多台主机

如果我们写 node_cpu_seconds_total 则显示以下所有信息

increase(cpu0 instance="localhost:8080" [5m]) 5分钟的增量 1000\
increase(cpu1 instance="localhost:8080" [5m]) 5分钟的增量 1200 |
increase(cpu2 instance="localhost:8080" [5m]) 5分钟的增量 1300 | 这些分为一组
increase(cpu3 instance="localhost:8080" [5m]) 5分钟的增量 1500/

increase(cpu0 instance="localhost:8081" [5m]) 5分钟的增量 1000\
increase(cpu1 instance="localhost:8081" [5m]) 5分钟的增量 1200 |
increase(cpu2 instance="localhost:8081" [5m]) 5分钟的增量 1300 | 这些分为一组
increase(cpu3 instance="localhost:8081" [5m]) 5分钟的增量 1500/

按主机分组 进行求和

sum by (instance) ()

标签:increase,idle,分钟,5m,Prometheus,PromQL,增量,查询语言,cpu
来源: https://www.cnblogs.com/t-road/p/15604040.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有