使用Prometheus监控CPU利用率

时间:2018-02-21 22:44:39

标签: cpu-usage prometheus promql

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

3/4 = 75% CPU utilization.

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