0

当我使用 cadvisor 在 docker 容器中获取有关 cpu 的信息时,我得到的信息如下: 在此处输入图像描述

我的问题是如何通过cadvisor返回的信息来计算cpu使用率和负载,这与Prometheus相同?Prometheus如何计算cpu使用率?

4

2 回答 2

0

Prometheus 使用的算法rate()有点复杂,因为它处理了对齐和计数器重置等问题,如Counting with Prometheus中所述。

简短的版本是从最后一个值中减去第一个值,然后除以它们结束的时间。使用 Prometheus 可能比自己动手更容易。

于 2018-01-04T08:51:09.237 回答
0

下面的查询应该返回消耗最多 CPU 时间的前 10 个容器:

topk(10, sum(irate(container_cpu_usage_seconds_total{container_label_com_docker_swarm_node_id=~".+", id=~"/docker/.*"}[$interval])) by (name)) * 100 
于 2018-07-31T10:55:49.000 回答