如何在启用超线程时获得GRAFANA中CPU的聚合使用率



我们正在运行GRAFANA/PROMETHEUS来监控我们的CPU指标,并查找所有CPU的聚合CPU使用情况。问题是我们已经启用了超线程,当我们强调CPU时,百分比超过了100%。我的问题是,如何限制cpu使用率,使其仅显示100%的使用率,即使cpu使用率很高,也不能显示更多。

p.S我试过在grafana中设置最大和最小极限,但图形峰值仍然超过了这个极限。

请给我这个问题的正确答案。

我尝试过的问题如下。

sum(irate(node_cpu_seconds_total{instance="localhost",job="node", mode!="idle"}[5m]))*100

100 - avg(irate(node_cpu_seconds_total{instance="localhost",job="node", mode!="idle"}[5m]))*100

以及我们尝试过的其他类似查询。

如果你只想"cap";将变量或表达式结果设置为最大值(即100(,您可以简单地使用Prometheus函数clamp_max。

因此,你可以做:

clamp_max(<expr>, 100)

这可能是最有用的查询。

(1 - avg(irate(node_cpu_seconds_total{instance="$instance",job="$job",mode!="idle"}[5m])))*100

替换实例IP和节点导出器作业名称。

要获得单CPU核心使用率:

sum by(cpu) (irate(node_cpu_seconds_total{job="<JOB_NAME>", mode!="idle"}[$__rate_interval]))

每个核心的CPU使用率

然后平均得到整个CPU使用情况:

avg (sum by(cpu) (irate(node_cpu_seconds_total{job="<JOB_NAME>", mode!="idle"}[$__rate_interval])))

CPU使用率所有核心

当机器进行编译工作时,您可以看到使用率不会100%溢出。

最新更新