首页 > 解决方案 > 如何为在 Prometheus 上的 Kubernetes 集群上运行的 pod 查找有关 CPU/MEM 的指标

问题描述

我通过 Terraform 的 Helm 设置了 Prometheus,它被配置为连接到我的 Kubernetes 集群。我打开我的 Prometheus,但我不确定从列表中选择哪个指标才能查看正在运行的 Pod/作业的 CPU/MEM。以下是使用该命令运行的所有 pod(test1是 kube命名空间):

kubectl -n test1 get pods

豆荚运行

当我在 Prometheus 上时,我看到许多与 CPU 相关的指标,但不确定选择哪一个:

舞会1

我试图选择一个,但命名空间 = prometheus 并且它使用了我在这里的任何地方都prometheus-node-exporter看不到我的集群或命名空间test1

舞会2

请你帮助我好吗?非常感谢您提前。

UPDATE SCREENSHOT UPDATE SCREENSHOT 我需要专注于这个特定的命名空间,通常使用以下命令: kubectl get pods --all-namespaces | grep hermatwin 我看到第一行带有命名空间 =jobs我认为这是命名空间。 舞会QL1

将日历设置为上周五没有结果: 舞会QL2

更新屏幕截图 4 月 20 日 我尝试选择 2 天,开始日期为 4 月 17 日上周六,但我没有看到任何结果: 没有结果1

而且,如果我删除 (namespace="jobs") 条件,我也看不到任何结果: 没有结果2

我刚才尝试再次重新运行作业(模拟作业)并尝试在作业仍在运行模式时执行普罗米修斯查询,但我没有得到任何结果:-(在这里你可以看到我的作业正在运行。

工作跑步

我没有得到任何结果: 没有结果3

使用简单过滤器时container_cpu_usage_seconds_total,我可以看到 namespace="jobs" 结果命名空间作业

速率1

结果作业

标签: kubernetesprometheuskubernetes-pod

解决方案


node_cpu_seconds_total是来自 的指标node-exporter,带来机器统计信息的导出器,其指标以 为前缀node_。您需要来自 的指标cAdvisor,这会产生与容器相关的指标,它们的前缀为container_

container_cpu_usage_seconds_total
container_cpu_load_average_10s
container_memory_usage_bytes
container_memory_rss

以下是一些基本查询供您入门。准备好它们可能需要调整(您可能有不同的标签名称):

每个 Pod 的 CPU 利用率

sum(irate(container_cpu_usage_seconds_total{container!="POD", container=~".+"}[2m])) by (pod)

每个 Pod 的 RAM 使用情况

sum(container_memory_usage_bytes{container!="POD", container=~".+"}) by (pod)

每个 Pod 的进出流量率

请注意,具有host网络模式(非隔离)的 pod 会显示整个节点的流量。* 8是为了方便将字节转换为位(MBit/s、GBit/s 等)。

# incoming
sum(irate(container_network_receive_bytes_total[2m])) by (pod) * 8
# outgoing
sum(irate(container_network_transmit_bytes_total[2m])) by (pod) * 8

推荐阅读