簡體   English   中英

Prometheus中如何查詢容器memory限制

[英]How to query container memory limit in Prometheus

我正在使用 Prometheus 工具來監控我的 Kube.netes 集群。

我在我的部署中設置了資源限制(內存限制),需要配置一個面板來顯示可用的總數 memory。 請讓我知道在 Prometheus 中運行所需的查詢以獲得可用於我的部署的總 memory 限制。

可以使用指標kube_pod_container_resource_limits_memory_bytes(由kube-state-metrics提供 )和container_memory_usage_bytes(由kubelet / cAdvisor提供)

label_replace(
  label_replace(
    kube_pod_container_resource_limits_memory_bytes{},
    "pod_name", 
    "$1", 
    "pod", 
    "(.+)"
  ),
  "container_name", 
  "$1", 
  "container", 
  "(.+)"
) 
-
on(pod_name,namespace,container_name) 
avg(
      container_memory_usage_bytes{pod_name=~".+"}
)
by (pod_name,namespace,container_name)

關於查詢的一些解釋:這是內存限制和實際使用量的減去。 需要使用label_replace函數來匹配兩個度量的標簽名稱,因為它們是從不同的目標獲得的。 由於每次pod重新啟動都會創建一個新指標,因此avg用於獲取pod重新啟動之間的平均值。 {pod_name=~".+"}用於從container_memory_usage_bytes中過濾對這種情況無用的指標

從 Kube.netes v1.16 開始,以下 PromQL 查詢返回每個容器免費 memory:

kube_pod_container_resource_limits{resource="memory"}
  - on(namespace, pod, container)
container_memory_usage_bytes

on()修飾符指示 Prometheus 在查找-運算符左側和右側具有相同標簽的時間序列對時僅考慮列出的標簽。 有關詳細信息,請參閱這些文檔

暫無
暫無

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

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