[英]Prometheus query for Kubernetes pod uptime
我有一个 Kubernetes 集群,安装了kube-prometheus-stack (Prometheus 2.27.1,kube-state-metrics v2.0.0)
我想查询返回每个 Pod 在过去 24 小时内运行的时间
重要的是,我需要的是 pod 存在的确切时间,而不是 CPU 使用率。
我可以做这样的事情:
kube_pod_completion_time - kube_pod_created
但对于仍在运行的 pod,它不会返回任何内容。 而且,由于 Prometheus 不会返回超过 5 分钟的指标,因此它不会报告终止和删除的 Pod 的任何内容。
如果没有这些问题,我将如何查询 Prometheus?
一种可行的解决方案是:
sum by(namespace, pod) (
(last_over_time(kube_pod_completion_time[1d])
- last_over_time(kube_pod_created[1d]))
or
(time() - kube_pod_created)
)
sum
的第一部分处理 pod 已终止的情况。 我们选择kube_pod_completion_time
和kube_pod_stared
的最后一个值并计算差异。
第二部分处理仍在运行的 Pod。 在这种情况下, kube_pod_created
指标有一个新值,我们可以从当前时间中减去它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.