首页 > 解决方案 > 在 Group By 语句中计算值

问题描述

用例:

我有 10 个 Kubernetes 节点(将它们视为 VM),它们具有 7 到 14 个可分配的 CPU 内核,这些内核可以由 Kubernetes pod 请求。因此,我想展示一张表格,其中显示

  1. 可分配的 CPU 内核
  2. 请求的 CPU 内核
  3. 请求/可分配 CPU 核心的比率

按节点分组。

问题

为前 2 个需求创建表很容易。我只是在 Grafana 中创建了一个表并添加了这两个指标:

sum(kube_pod_container_resource_requests_cpu_cores) by (node)
sum(kube_node_status_allocatable_cpu_cores) by (node)

然而,我正在为第三个而苦苦挣扎。我试过这个查询,但它显然没有返回任何数据:

sum(kube_pod_container_resource_requests_cpu_cores / kube_node_status_allocatable_cpu_cores) by (node)

问题

在我给定的示例中,如何在 group by 语句中计算两个不同的指标?

标签: grafanaprometheuspromql

解决方案


这里的问题是两者有不同的标签,所以你需要聚合掉额外的东西:

  sum by (node)(kube_pod_container_resource_requests_cpu_cores) 
/ 
  sum by (node)(kube_node_status_allocatable_cpu_cores)

推荐阅读