[英]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.