簡體   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