如果我没有接近Kubernetes容器CPU限制,请使用Prometheus进行检测

问题描述 投票:0回答:1

如果我的容器实际CPU使用率高于/低于CPU请求并且没有接近CPU限制,我想检测使用Prometheus(Grafana / alerting)?

对于内存消耗,我设法通过这样做:

sum by(container_name, pod_name)(container_memory_usage_bytes{namespace=~"myNamespace",pod_name=~"myPodName",container_name=~"myContainerName"})
kube_pod_container_resource_requests_memory_bytes{namespace=~"myNamespace",pod=~"myPodName", container =~"myContainerName"}
kube_pod_container_resource_limits_memory_bytes{namespace=~"myNamespace",pod=~"myPodName", container=~"myContainerName"}

我会用CPU实现相同的功能,例如使用:container_cpu_usage_seconds_total,但我没有设法将它链接到kube_pod_container_resource_requests_cpu_cores,并且不确定这两个指标是否具有可比性。

有什么建议吗?

kubernetes openshift grafana prometheus
1个回答
2
投票

我使用此查询来获取pod正在使用的CPU限制的百分比。

sum(label_replace(rate(container_cpu_usage_seconds_total{container_name =~ ".+"}[1m]), "pod", "$1", "pod_name", "(.*)")) by (pod, namespace) /
sum(kube_pod_container_resource_limits_cpu_cores{}) by (pod, namespace) * 100

对于RAM:

sum(container_memory_working_set_bytes) by (container_name, namespace) / 
sum(label_join(kube_pod_container_resource_limits_memory_bytes, "container_name", "", "container")) by (container_name, namespace) * 100
© www.soinside.com 2019 - 2024. All rights reserved.