我想用普罗米修斯计算k8s集群的cpu /内存使用量(不是k8s pod的使用量),以便可以在grafana中显示。
我使用sum (container_memory_usage_bytes{id="/"})
来获取k8s集群使用的内存,并使用topk(1, sum(kube_node_status_capacity_memory_bytes) by (instance))
来获取整个k8s集群的内存,但是由于topk
函数不返回值而是返回向量,因此它们无法除。 / p>
我该怎么做?
答案 0 :(得分:1)
我已经通过gcloud默认应用程序在Google Cloud上安装了Prometheus。仪表板随安装自动部署。以下查询是用于群集的内存和CPU使用率的查询:
按名称空间划分的CPU使用率:
sum(irate(container_cpu_usage_seconds_total[1m])) by (namespace)
按名称空间显示的内存使用情况(无缓存)
sum(container_memory_rss) by (namespace)
CPU请求承诺:
sum(kube_pod_container_resource_requests_cpu_cores) / sum(node:node_num_cpu:sum)
内存请求承诺:
sum(kube_pod_container_resource_requests_memory_bytes) / sum(node_memory_MemTotal)
答案 1 :(得分:0)
我的主要问题是topk(1, sum(kube_node_status_capacity_memory_bytes) by (instance))
无法返回值,但是现在我发现使用sum()
隐蔽它可以工作,整个查询如下:
sum(sum (container_memory_usage_bytes{id="/"})by (instance))/sum(topk(1, sum(kube_node_status_capacity_memory_bytes) by (instance)))*100