启用超线程时如何在 GRAFANA 中获取 CPU 的聚合使用情况

How To Get the Aggregated Usage of CPU in GRAFANA when hyperthreading is enabled

我们正在 运行 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

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

如果您只想将变量或表达式结果“限制”为最大值(即 100),您可以简单地使用 Prometheus 函数 clamp_max.

因此,您可以这样做:

clamp_max(<expr>, 100)

这可能是最有帮助的查询。

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

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