繁体   English   中英

如何使用普罗米修斯作为监控来计算kube.netes中容器的cpu使用率?

[英]How to calculate containers' cpu usage in kubernetes with prometheus as monitoring?

我想计算 kube.netes 集群中所有 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...

我用它来获得集群级别的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

在此输入图像描述

在此输入图像描述

以下查询返回每个容器在过去 5 分钟内使用的平均 CPU 数:

rate(container_cpu_usage_seconds_total{container!~"POD|"}[5m])

方括号中的 lookbehind window(上例中为5m )可以更改为需要的值。 在此处查看可能的持续时间值。

container!~"POD|" 过滤器删除与 cgroups 层次结构相关的指标(有关更多详细信息,请参阅此答案)和pause容器等指标(请参阅这些文档)。

由于每个pod可以包含多个容器,因此可以使用以下查询返回每个 pod 在过去 5 分钟内使用的平均 CPU 数:

sum(
  rate(container_cpu_usage_seconds_total{container!~"POD|"}[5m])
) by (namespace,pod)

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

avg (rate (container_cpu_usage_seconds_total{id="/"}[1m]))

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

sum(eagle_pod_container_resource_usage_cpu_cores)

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

我更喜欢每个文档使用这个指标

sum(rate(container_cpu_usage_seconds_total{name!~".*prometheus.*", image!="", container_name!="POD"}[5m])) by (pod_name, container_name) /
sum(container_spec_cpu_quota{name!~".*prometheus.*", image!="", container_name!="POD"}/container_spec_cpu_period{name!~".*prometheus.*", image!="", container_name!="POD"}) by (pod_name, container_name)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM