使用 Prometheus 计算命名空间中 pod 的 CPU 使用率

Che*_* MS 0 grafana kubernetes prometheus

如何获取namespace下pod的CPU使用率?我在 Grafana 设置上的初始仪表板如下所示 - 在此输入图像描述

我正在尝试提出一个查询,它可以提供所选cluster中所选命名空间的所选Pod的 CPU 使用情况。设法想出下面的一个,但它返回“ ”。No data

sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{pod="$pod", namespace="$namespace"})
Run Code Online (Sandbox Code Playgroud)

我哪里出错了?

Ale*_*lez 5

如果要计算每个 Pod 的工作负载 CPU 利用率(以 CPU 使用秒数为单位),可以使用以下PromQL查询:

sum(rate(container_cpu_usage_seconds_total{namespace="$namespace",
  pod_name=~"$podName",container_name!=""}[1m])) by (pod_name)
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • container_cpu_usage_seconds_total()它告诉你 CPU 被占用了多长时间
  • rate()计算范围向量中时间序列的每秒平均增长率
  • [1m]以定义的 1 分钟间隔读取值
  • sum() by (pod_name)添加包含相同 pod 名称的所有值,这在同一个 pod 中有多个容器的情况下是必需的
  • namespace="$namespace",pod_name=~"$podName",container_name!=""应用条件让 Pod 考虑并过滤其余内容

如果要计算每个 Pod 的工作负载内存利用率,可以使用以下查询:

sum(container_memory_working_set_bytes{namespace="$namespace",
  pod_name=~"$podName", container_name!=""}) by (pod_name)
Run Code Online (Sandbox Code Playgroud)