Kubernetes:比较 Pods 的 RSS 内存使用情况和 Prometheus / PromQL 中的 Pod 内存要求

Kubernetes: Comparing RSS Memory Usage of Pods and Pod Memory Requirements in Prometheus / PromQL

我们有一个来自 cadvisor 的指标 container_memory_rss 和一个来自 Kubernetes 本身的指标 kube_pod_container_resource_requests_memory_bytes

是否可以将这些指标相互连接起来,以便我们可以直接比较两个指标的比率?更具体地说,我想基本上 'join' 以下指标:

sum(kube_pod_container_resource_requests_memory_bytes) by (pod, namespace)
sum(container_memory_rss) by (container_label_io_kubernetes_pod_name, container_label_io_kubernetes_pod_namespace)

'join' 将在 pod 名称和命名空间上。

鉴于标签名称不同,PromQL 可以做到这一点吗?

您可以使用 label_replace 函数修改表达式一侧的标签,使其匹配:

  sum by (pod_name, namespace) (container_memory_rss) 
/ 
  sum by (pod_name, namespace) (
    label_replace(
      kube_pod_container_resource_requests_memory_bytes, 
      "pod_name", "", "pod", "(.*)"
    )
  )