如何用普罗米修斯计算kubernetes中容器的cpu使用情况作为监控?

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

我想计算kubernetes集群中所有pod的cpu使用情况。我在prometheus中发现了两个指标可能很有用:

container_cpu_usage_seconds_total: Cumulative cpu time consumed per cpu in seconds.
process_cpu_seconds_total: Total user and system CPU time spent in seconds.

Cpu Usage of all pods = increment per second of sum(container_cpu_usage_seconds_total{id="/"})/increment per second of sum(process_cpu_seconds_total)

然而,我发现container_cpu_usage{id="/"}的每秒增量都大于sum(process_cpu_seconds_total)的增量。因此使用量可能大于1 ...

kubernetes prometheus
3个回答
24
投票

我用它来获得集群级别的CPU使用率:

sum (rate (container_cpu_usage_seconds_total{id="/"}[1m])) / sum (machine_cpu_cores) * 100

我还跟踪每个pod的CPU使用情况。

sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)

我在GitHub上有一个完整的kubernetes-prometheus解决方案,也许可以帮助你提供更多指标:https://github.com/camilb/prometheus-kubernetes

enter image description here

enter image description here


0
投票

我创建了自己的prometheus导出器(https://github.com/google-cloud-tools/kube-eagle),主要是为了更好地概述每个节点的资源利用率。但它还提供了一种更直观的方式来监控CPU和RAM资源。获取群集范围CPU使用率的查询如下所示:

sum(eagle_pod_container_resource_usage_cpu_cores)

但您也可以通过命名空间,节点或节点池轻松获取CPU使用率。


0
投票

那你也可以使用下面的查询:

avg (rate (container_cpu_usage_seconds_total{id="/"}[1m]))
© www.soinside.com 2019 - 2024. All rights reserved.