- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我运行了Kubernetes的v1.9.2
自定义设置,并使用Prometheus v2.1.0
抓取了各种指标。除其他外,我刮了kubelet
和cAdvisor
指标。
我想回答一个问题:“在部署中,pod(及其容器)实际上使用(毫厘)内核使用了requests
和limits
定义的CPU资源中有多少?”
有许多可用的刮除指标,但并非如此。也许可以通过CPU使用时间(以秒为单位)来计算,但我不知道如何。
我一直在考虑这是不可能的-直到一个 friend 告诉我她在集群中运行Heapster时,内置Grafana中有一个图形准确地表明:它在(milli)内核中显示了pod及其容器的单独CPU使用情况。
由于Heapster还使用kubelet
和cAdvisor
指标,所以我想知道:如何计算相同的值? InfluxDB中的指标称为cpu/usage_rate
,但是即使使用Heapster的代码,我也无法弄清楚他们是如何计算出来的。
任何帮助表示赞赏,谢谢!
最佳答案
我们正在使用container_cpu_usage_seconds_total
指标来计算Pod CPU使用率。此度量标准包含每个容器按核心消耗的CPU秒总数(这很重要,因为Pod可能包含多个容器,每个容器可以跨多个核心进行调度;但是,该度量标准具有pod_name
批注,我们可以使用进行汇总)。特别值得关注的是该指标的变化率(可以使用PromQL's rate()
function进行计算)。如果在1秒钟内增加1,则Pod在该秒内消耗1个CPU内核(或1000毫内核)。
下面的PromQL查询就是这样做的:计算平均五分钟内所有Pod的CPU使用率(使用 sum(...) by (pod_name)
操作):
sum(rate(container_cpu_usage_seconds_total[5m])) by (pod_name)
关于kubernetes - 如何在Kubernetes中使用Prometheus获得pod的(milli)核心CPU使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48872042/
我是一名优秀的程序员,十分优秀!