首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Prometheus监控CPU利用率

使用Prometheus监控CPU利用率
EN

Stack Overflow用户
提问于 2018-02-22 06:44:39
回答 2查看 18.1K关注 0票数 11

我正在尝试监视安装并运行Prometheus的机器的cpu利用率。我有一个公制process_cpu_seconds_total。我可以找到这个指标的irate或rate。但我不太确定如何得出CPU利用率的百分比值。有没有什么方法我可以使用这个CPU指标来找出运行普罗米修斯的机器的process_cpu_seconds_total利用率?

EN

回答 2

Stack Overflow用户

发布于 2019-02-15 12:35:52

这也是一个对他人有益的迟来的回答:

如果您只想监控prometheus prometheus进程使用的CPU百分比,您可以使用process_cpu_seconds_total,例如:

代码语言:javascript
复制
avg by (instance) (irate(process_cpu_seconds_total{job="prometheus"}[1m]))

但是,如果您想要一个通用的机器CPU监视器,您应该设置Node exporter,然后使用一个与上面类似的查询,指标为node_cpu_seconds_total。例如:

代码语言:javascript
复制
avg by (instance,mode) (irate(node_cpu_seconds_total{mode!='idle'}[1m]))

rateirate等同于百分比(满分为1),因为它们是每秒使用的秒数,但通常需要在计算机上的核心/cpus之间进行聚合。

布莱恩·巴西关于普罗米修斯CPU监控的帖子非常相关和有用:https://www.robustperception.io/understanding-machine-cpu-usage

票数 13
EN

Stack Overflow用户

发布于 2018-02-22 06:53:35

一种方法是利用适当的cgroup资源报告。Cgroup将CPU核心时间划分为1024个份额。因此,通过了解进程消耗了多少共享,您始终可以找到CPU利用率的百分比。

现在,在您的例子中,如果您有CPU秒的变化率,这是进程在最后一个时间单位中使用CPU时间的时间(假设从现在开始为1秒)。然后取决于您有多少个核心,最后1个单元中的1个CPU将有1个CPU。所以如果你的变化率是3,你有4个核心。

3/4 = 75% CPU utilization.

这只是一个粗略的估计,因为由于延迟和延迟等原因,您的process_total_cpu时间可能不是很准确。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48916798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档