使用Prometheus监控CPU利用率

问题描述 投票:3回答:2

我正在尝试监视安装和运行Prometheus的机器的CPU利用率。我有一个指标'process_cpu_seconds_total'。我可以找到该指标的愤怒或率。但我不太清楚如何提出CPU利用率的百分比值。无论如何我可以使用此process_cpu_seconds_total指标来查找Prometheus运行的机器的CPU利用率吗?

cpu-usage prometheus promql
2个回答
1
投票

对其他人的好处也是迟到的答案:

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

avg by (instance) (irate(process_cpu_seconds_total{job="prometheus"}[1m]))

但是,如果您想要机器的一般监视器,我怀疑您可能是,您应该使用Node exporter

Brian Brazil关于Prometheus CPU监控的帖子非常相关且有用:https://www.robustperception.io/understanding-machine-cpu-usage


0
投票

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

现在在你的情况下,如果你有CPU秒的变化率,这是过程在上一个时间单位中使用CPU时间的时间(从现在开始假定为1秒)。然后取决于你拥有多少个核心,最后1个单元中的1个CPU将具有1个CPU秒。因此,如果您的变化率为3,并且您有4个核心。

3/4 = 75% CPU utilization.

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

© www.soinside.com 2019 - 2024. All rights reserved.