用prometheus计算k8s集群的CPU /内存使用率

时间:2019-02-25 12:59:00

标签: kubernetes grafana prometheus

我想用普罗米修斯计算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>

我该怎么做?

2 个答案:

答案 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