簡體   English   中英

如何在 Prometheus 中按部署對 pod 指標進行分組?

[英]How do I group pod metrics by deployment in Prometheus?

Prometheus 具有諸如container_cpu_usage_seconds_total之類的指標。 但是,它們僅按 pod 分組。 如何按部署/cronjobs/等對它們進行分組?

我能夠通過以下查詢來處理這個問題:

((label_replace((rate(container_cpu_usage_seconds_total{image,=""}[2m]) * on(pod) group_left(owner_name) (sum without (instance) (kube_pod_owner))), "replicaset", "$1", "owner_name". "(.*)")) * on(replicaset) group_left(owner_name) (sum without (instance) (kube_replicaset_owner{})))

這是解釋:

  • pod上加入container_cpu_usage_seconds_totalkube_pod_owner
  • kube_pod_owner復制owner_name
  • 使用label_replacekube_pod_ownerowner_name重命名為replicaset
  • replicaset集上加入 kube_replicaset_owner
  • kube_replicaset_owner復制owner_name (此值是您的部署等)

without (instance)用於從連接集中刪除instance字段。 因為單個部署可以有多個實例,這可能會導致問題。

最后,直接在最里面的區域對container_cpu_usage_seconds_total調用rate function ,否則 Prometheus 會抱怨parse error: ranges only allowed for vector selectors 將其放置在最里面的區域是一種解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM