【问题标题】:PromQL query for getting the namespace CPU usage clusterwide用于获取集群范围内的命名空间 CPU 使用情况的 PromQL 查询
【发布时间】:2019-10-28 10:30:47
【问题描述】:

我在不同的命名空间中运行我们应用程序的不同版本,并且我已经设置了一个 prometheus 和 grafana 堆栈来监控它们。我使用下面的 promql 来获取不同 pod 的 cpu 使用率(占 1 个核心的百分比),它返回的值与我从 kubectl top pods -n namespace 获得的值匹配:

sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) by (pod)*100

问题是我想获取命名空间集群范围内所有 pod 的总 cpu 使用率,我尝试了不同的查询,但它们返回的值与我从上述 promql 或 @ 获得的总 cpu 使用率不匹配987654323@.

我尝试过的 promql 查询:

sum (rate (container_cpu_usage_seconds_total{namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) by (namespace)
sum (rate (container_cpu_usage_seconds_total{namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m]))

我为此使用了Singlestat 以及Value 部分的visualization,我尝试了不同的show 方法,例如平均、总计、当前但未返回正确的值。

我的问题是如何获得命名空间集群范围内所有 pod 的总 cpu 使用率?

【问题讨论】:

  • 你能试试这个吗:sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) / sum (machine_cpu_cores{}) * 100
  • 感谢您的评论。正如我在我的问题中所写的那样,我正在使用sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod=~"^$Deployment.*$"}[1m])) by (pod) 来获取 pod cpu 使用情况,并且它对每个 pod 分别正确工作,但问题是我想要所有 pod cpu 使用情况的总和,而我从中获得的值不相等到我通过汇总所有 pod cpu 使用情况得到的值。

标签: kubernetes grafana prometheus promql


【解决方案1】:

我进行了一些研究,发现很少有适合您需求的答案:

  1. 为了简单地监控集群级别的 CPU 使用情况,请使用: sum (rate (container_cpu_usage_seconds_total{id="/"}[1m])) / sum (machine_cpu_cores) * 100

  2. 如果您想查看命名空间的 %CPU 使用率,您需要先计算命名空间 CPU 使用率,然后将其除以集群中的可用 CPU。它看起来像这样: sum (rate (container_cpu_usage_seconds_total{namespace="$Namespace"}[1m])) / sum(machine_cpu_cores) * 100

  3. 您还可以使用 Prometheus 的任意标签来计算命名空间的 CPU 使用率。更多详情请见here

  4. 终于可以试试Prometheus exporter了。

如果有帮助,请告诉我。

【讨论】:

    【解决方案2】:

    以下 PromQL 查询应返回 Kuberentes 中所有 pod 的每个命名空间 CPU 使用情况汇总(CPU 使用情况以使用的 CPU 内核数表示):

    sum(rate(container_cpu_usage_seconds_total{container!=""}[5m])) by (namespace)
    

    需要{container!~""} 过滤器来删除cgroups hierarchy 的CPU 使用指标,因为这些指标已经包含在非空container 标签中。

    查询使用以下 PromQL 函数:

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      相关资源
      最近更新 更多