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", "(.*)"
)
)
我们有一个来自 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", "(.*)"
)
)