使用Prometheus在Windows中准确监测CPU使用率

3
使用wmi_exporter或scollector_exporter与Prometheus一起使用时,我发现很难获得准确的CPU使用情况。下面是我正在使用的指标以及我在scollector中使用的查询:
os_cpu with returns: 1.54432653e+07

我使用速率进行查询:

rate(os_cpu{exported_instance="myHost"}[30s])

这里是我在Grafana查询中得出的图表:绿线代表利用率 os_cpu返回的是整个CPU使用情况,即所有核心的使用情况。与Windows任务管理器相比,这并不相符,因为Windows任务管理器显示最高为100%。不可能出现300%的CPU使用率。
如何让我的查询获得更准确的测量结果?

我不确定这个 os_cpu 指标是从哪里来的 - wmi_exporter 吗?无论如何,也许最好的做法是在他们的 Github 页面上询问这个指标的含义。 - FuzzyAmi
@FuzzyAmi 是的,我认为通过使用更长的时间范围,我得到了更好的指标,我没有看到中间的峰值,但这是一个更好的图表。我使用了2分钟而不是30秒。 - W Khan
2个回答

6

如果你已经找到了答案,那太棒了,但是无论如何...以下内容可能会有所帮助:

100 - (avg by (instance) (irate(windows_cpu_time_total{mode="idle", instance=~"$server"}[1m])) * 100)

来自 Grafana 仪表板库:https://grafana.com/grafana/dashboards/12566

在此输入图片描述


0

如果您有多个内核,使用率可能会超过100%

我建议您使用100 - (avg by (instance) (irate(node_cpu{job="node",mode="idle"}[5m])) * 100)

这里有一篇更详细的博客文章关于它


6
node_cpu 是一个节点导出器参数,不是 Windows 导出器(也称为 WMI 导出器)的参数。 - rashidcmb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接