Vla*_*rus 2 monitoring kubernetes prometheus
我有一个安装了kube-prometheus-stack的 Kubernetes 集群(Prometheus 2.27.1、kube-state-metrics v2.0.0)
我想要一个查询来返回每个 Pod 在过去 24 小时内运行的时间
重要的是,我需要确切的 Pod 存在时间,而不是 CPU 使用情况。
我可以这样做:
kube_pod_completion_time - kube_pod_created
Run Code Online (Sandbox Code Playgroud)
但对于仍在运行的 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)
)
Run Code Online (Sandbox Code Playgroud)
里面的第一部分sum处理 Pod 已终止的情况。kube_pod_completion_time我们选择和的最后一个值kube_pod_stared并计算差值。
第二部分处理仍在运行的 Pod。在这种情况下,指标有一个新值kube_pod_created,我们可以从当前时间中减去它。
| 归档时间: |
|
| 查看次数: |
7201 次 |
| 最近记录: |