来自 WINdows 的 Prometheus 的准确 CPU 使用率
Posted
技术标签:
【中文标题】来自 WINdows 的 Prometheus 的准确 CPU 使用率【英文标题】:Accurate CPU usage with Prometheus from WIndows 【发布时间】:2017-06-11 19:30:00 【问题描述】:将 wmi_exporter 或 scollector_exporter 与 Prometheus 一起使用,我发现很难获得准确的 CPU 使用率。这是我正在使用的指标和我用于 scollector 的查询:
os_cpu with returns: 1.54432653e+07
我用费率查询:
rate(os_cpuexported_instance="myHost"[30s])
这是我从 Grafana 的查询中得出的图表
os_cpu 返回总体 CPU 使用率,即所有内核,并将其与 Windows 中的 Taskmanager 进行比较,它不会相加,因为它显示 100% max。不可能获得 300% 的 CPU 使用率。
如何处理我的查询以获得更准确的测量结果?
【问题讨论】:
我不确定这个 os_cpu 指标来自哪里 - wmi_exporter?无论如何,也许最好的办法是在他们的 github 页面上询问该指标的含义。 @FuzzyAmi 是的,我认为通过使用更大的时间范围,我得到了更好的指标,我没有看到中间的峰值,但它是一个更好的图表。我用 2m 而不是 30s 【参考方案1】:现在您可能已经找到了答案,但无论如何……这似乎很有用:
100 - (avg by (instance) (irate(windows_cpu_time_totalmode="idle", instance=~"$server"[1m])) * 100)
来自 grafana 仪表板库:https://grafana.com/grafana/dashboards/12566
【讨论】:
【参考方案2】:如果你有多个核心,使用率可以超过 100%
我建议你使用
100 - (avg by (instance) (irate(node_cpujob="node",mode="idle"[5m])) * 100)
这里有更多关于它的detailed blog post
【讨论】:
node_cpu 是节点导出器参数,不适用于 windows exporter aka wmi exporter以上是关于来自 WINdows 的 Prometheus 的准确 CPU 使用率的主要内容,如果未能解决你的问题,请参考以下文章
使用来自其他变量选择的 grafana 变量依赖项(使用 prometheus)
使用来自 Kubernetes Metric 服务器的 PromQL (prometheus) 列出 Grafana 上的命名空间名称、命名空间年龄和状态
Prometheus:Prometheus 监控Windows机器
在不使用 spring-boot 执行器的情况下将来自 spring 应用程序的指标公开给 prometheus