有没有办法可视化当前的K8S集群中pod的CPU使用率?
我尝试了不同的 Prometheus 指标,例如namespace_pod_name_container_name:container_cpu_usage_seconds_total:sum_rate
和其他类似的指标,但我总是得到过去 5 分钟的平均值,所以即使工作负载突然增加,我的图表上也会有“阶梯状”(请参阅截屏)。
同时,kubectl top pod
显示更精确的值,因此当我将工作负载提高到 100% 时,它会在几秒钟内开始显示 100% 的利用率。
有没有办法将这些值提供给 Grafana?
谢谢!
答案1
如果我理解正确的话,您可以尝试以下查询:
sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)
这将跟踪每个 pod 的 CPU 使用率,结果将以 1 分钟的速率显示。当然,您可以[1m]
根据需要调整参数(和其他参数)。
如果有帮助的话请告诉我。
答案2
在我的情况下只有总和有效,但是当我用 [15m] 添加速率时,它会在 by (pod) 上给出错误
您的解决方案中是否遗漏了 sum_rate?在我的例子中,我使用 sum_irate
sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster="$cluster", namespace="seet"}(* = 乘以符号) on(namespace,pod)group_left(workload,workload_type)namespace_workload_pod:kube_pod_owner:relabel{cluster="$cluster", namespace="seet",workload="seetbackend",workload_type="deployment"}) by (pod)