Kubernetes:比较 Prometheus / PromQL 中 Pod 的 RSS 内存使用和 Pod 内存需求

Posted

技术标签:

【中文标题】Kubernetes:比较 Prometheus / PromQL 中 Pod 的 RSS 内存使用和 Pod 内存需求【英文标题】:Kubernetes: Comparing RSS Memory Usage of Pods and Pod Memory Requirements in Prometheus / PromQL 【发布时间】:2019-07-26 16:47:14 【问题描述】:

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

是否可以将指标相互结合,以便我们可以直接比较两个指标的比率?更具体地说,我想基本上“加入”以下指标:

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)

“加入”将在 pod 名称和命名空间上。

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

【问题讨论】:

【参考方案1】:

您可以使用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", "$1", "pod", "(.*)"
    )
  ) 

【讨论】:

以上是关于Kubernetes:比较 Prometheus / PromQL 中 Pod 的 RSS 内存使用和 Pod 内存需求的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus在kubernetes集群的搭建教程

Kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(Kubernetes工作实践类)

Kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(Kubernetes工作实践类)

Linux企业运维——Kubernetes(二十)Prometheus监控

Linux企业运维——Kubernetes(二十)Prometheus监控

Kubernetes_08_使用kubernetes部署prometheus+grafana监控系统(Kubernetes工作实践类)