如何使用 Grafana 可视化 pod 当前的 CPU 使用情况

如何使用 Grafana 可视化 pod 当前的 CPU 使用情况

有没有办法可视化当前的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)

相关内容