[英]Prometheus query to get memory limit commitment for the entire cluster
[英]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.