我尝试计算限制pod使用的cpu百分比。我尝试使用此表达式:
sum(irate(container_cpu_usage_seconds_total{cluster!="production",namespace="devops"}[2m])) by (pod_name) / kube_pod_container_resource_limits_cpu_cores{cluster!="production",namespace="devops"}
但是显示0系列。左右表达式返回标量值。
答案 0 :(得分:0)
我认为问题在于并非每个pod容器都有CPU内核的资源限制。因此,您会得到两个长度不同的向量,并且表达式失败而没有错误消息。
您可以通过以下方式验证我的猜测:
count(sum(irate(container_cpu_usage_seconds_total{cluster!="production",namespace="devops"}[2m])) by (pod_name))
和:
count(kube_pod_container_resource_limits_cpu_cores{cluster!="production",namespace="devops"})
这两个值应该相同,如果不相同,这是您的查询不起作用的原因。
答案 1 :(得分:0)
您可以使用下面的prometheus表达式来给出CPU使用率百分比-
sum(rate(container_cpu_usage_seconds_total{container_name="abc"}[5m])) by (container_name) /sum(container_spec_cpu_quota{container_name="abc"}/container_spec_cpu_period{container_name="abc"}) by (container_name) *100
您可以在Grafana中创建自己的自定义信息中心,以获取过去x
天的数据。