繁体   English   中英

Prometheus 查询 Kubernetes pod 的正常运行时间

[英]Prometheus query for Kubernetes pod uptime

我有一个 Kubernetes 集群,安装了kube-prometheus-stack (Prometheus 2.27.1,kube-state-metrics v2.0.0)

我想查询返回每个 Pod 在过去 24 小时内运行的时间

  • 如果 Pod 仍在运行,则从创建到现在的时间
  • 如果帖子已终止,则从创建到完成的时间

重要的是,我需要的是 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_timekube_pod_stared的最后一个值并计算差异。

第二部分处理仍在运行的 Pod。 在这种情况下, kube_pod_created指标有一个新值,我们可以从当前时间中减去它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM