如何使用Promethus以百分比的形式获取pod的CPU和内存使用率

时间:2020-08-10 20:02:48

标签: kubernetes monitoring prometheus grafana promql

我想使用promql / Prometheus以以下格式显示窗格详细信息。

Image1

此外,我想使用promql以以下格式显示应用程序/组件的CPU和内存使用情况

Image2

promql查询:(pod)求和(container_memory_working_set_bytes)

我可以使用上面的查询按pod获取消耗的内存。

如何计算已用内存的百分比?我无法使用Promql提取有状态Pod的内存限制 您能否提出任何查询/ API详细信息?

2 个答案:

答案 0 :(得分:0)

用于CPU百分比

max by (pod) (sum(rate(container_cpu_usage_seconds_total{namespace="$namespace",container_name!="POD",container_name!="",container!="monitoring-daemon"}[5m])) / sum(kube_pod_container_resource_limits{namespace="$namespace", resource="cpu"})) * 100

关于内存百分比

avg((avg (container_memory_working_set_bytes{pod="<Podname>"}) by (container_name , pod ))/ on (container_name , pod)(avg (container_spec_memory_limit_bytes>0 ) by (container_name, pod))*100)

答案 1 :(得分:0)

我将其用于记忆:

round(max by(pod)(max_over_time(container_memory_usage_bytes {namespace =“ $ namespace”,pod =〜“。*”} [5m]))/ on(pod)(max by(pod)(kube_pod_container_resource_limits)) * 100,0.01)

这对于CPU来说: max by(pod)(sum(rate(rate(container_cpu_usage_seconds_total {namespace =“ $ namespace”,container_name!=“ POD”,container_name!=“”,container!=“ monitoring-daemon”} [5m]))/ sum(kube_pod_container_resource_limits {namespace =“ $ namespace”,resource =“ cpu”})))* 100