如何在Prometheus中查询容器内存限制

时间:2018-10-01 04:57:45

标签: kubernetes prometheus prometheus-operator

我正在使用Prometheus工具监视我的Kubernetes集群。

我在部署中设置了资源限制(内存限制),需要配置一个面板来显示可用的总内存。请让我知道要在Prometheus中运行以获取可用于我的部署的总内存限制的查询。

1 个答案:

答案 0 :(得分:1)

可以使用指标kube_pod_container_resource_limits_memory_bytes(由kube-state-metrics提供)和container_memory_usage_bytes(由kubelet / cAdvisor提供)

label_replace(
  label_replace(
    kube_pod_container_resource_limits_memory_bytes{},
    "pod_name", 
    "$1", 
    "pod", 
    "(.+)"
  ),
  "container_name", 
  "$1", 
  "container", 
  "(.+)"
) 
-
on(pod_name,namespace,container_name) 
avg(
      container_memory_usage_bytes{pod_name=~".+"}
)
by (pod_name,namespace,container_name)

对该查询的一些解释:这是内存限制和实际使用量的减去。需要label_replace函数来匹配两个度量的标签名称,因为它们是从不同的目标获得的。 avg用于获取Pod重新启动之间的平均值,因为每次Pod重新启动都会创建一个新指标。 {pod_name=~".+"}用于从container_memory_usage_bytes过滤对这种情况无用的指标