【发布时间】:2019-10-28 10:30:47
【问题描述】:
我在不同的命名空间中运行我们应用程序的不同版本,并且我已经设置了一个 prometheus 和 grafana 堆栈来监控它们。我使用下面的 promql 来获取不同 pod 的 cpu 使用率(占 1 个核心的百分比),它返回的值与我从 kubectl top pods -n namespace 获得的值匹配:
sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) by (pod)*100
问题是我想获取命名空间集群范围内所有 pod 的总 cpu 使用率,我尝试了不同的查询,但它们返回的值与我从上述 promql 或 @ 获得的总 cpu 使用率不匹配987654323@.
我尝试过的 promql 查询:
sum (rate (container_cpu_usage_seconds_total{namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) by (namespace)
sum (rate (container_cpu_usage_seconds_total{namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m]))
我为此使用了Singlestat 以及Value 部分的visualization,我尝试了不同的show 方法,例如平均、总计、当前但未返回正确的值。
我的问题是如何获得命名空间集群范围内所有 pod 的总 cpu 使用率?
【问题讨论】:
-
你能试试这个吗:
sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) / sum (machine_cpu_cores{}) * 100 -
感谢您的评论。正如我在我的问题中所写的那样,我正在使用
sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) by (pod)来获取 pod cpu 使用情况,并且它对每个 pod 分别正确工作,但问题是我想要所有 pod cpu 使用情况的总和,而我从中获得的值不相等到我通过汇总所有 pod cpu 使用情况得到的值。
标签: kubernetes grafana prometheus promql