【问题标题】:Prometheus queries to get the cpu and memory request of only pods which are in running statePrometheus 查询仅获取处于运行状态的 Pod 的 CPU 和内存请求
【发布时间】:2019-03-29 06:16:24
【问题描述】:
在我的 kubernetes 集群中,我有一些正在运行的 pod 和许多处于“已完成”状态的 pod。我使用查询,例如,
kube_pod_container_resource_requests_cpu_cores{namespace="default"} 获取默认命名空间中 Pod 的 cpu 请求。这给了我所有 pod 的 cpu 请求。但是,我想要的只是处于“运行”状态的 pod 的 cpu 请求。知道如何实现这一目标吗?谢谢
【问题讨论】:
标签:
kubernetes
prometheus
【解决方案1】:
请尝试以下查询:
kube_pod_container_resource_requests_cpu_cores{job="kube-state-metrics"} * on (endpoint, instance, job, namespace, pod, service) group_left(phase) (kube_pod_status_phase{phase=~"^(Pending|Running)$"} == 1)
它利用Prometheus matching operator 来选择带有正则表达式匹配的标签 - 这里只有处于运行或待定状态的 Pod。