kubernetes - 如何为在 Prometheus 上的 Kubernetes 集群上运行的 pod 查找有关 CPU/MEM 的指标
问题描述
我通过 Terraform 的 Helm 设置了 Prometheus,它被配置为连接到我的 Kubernetes 集群。我打开我的 Prometheus,但我不确定从列表中选择哪个指标才能查看正在运行的 Pod/作业的 CPU/MEM。以下是使用该命令运行的所有 pod(test1是 kube命名空间):
kubectl -n test1 get pods
当我在 Prometheus 上时,我看到许多与 CPU 相关的指标,但不确定选择哪一个:
我试图选择一个,但命名空间 = prometheus 并且它使用了我在这里的任何地方都prometheus-node-exporter
看不到我的集群或命名空间test1
。
请你帮助我好吗?非常感谢您提前。
UPDATE SCREENSHOT
UPDATE SCREENSHOT
我需要专注于这个特定的命名空间,通常使用以下命令:
kubectl get pods --all-namespaces | grep hermatwin
我看到第一行带有命名空间 =jobs
我认为这是命名空间。
更新屏幕截图 4 月 20 日 我尝试选择 2 天,开始日期为 4 月 17 日上周六,但我没有看到任何结果:
而且,如果我删除 (namespace="jobs") 条件,我也看不到任何结果:
我刚才尝试再次重新运行作业(模拟作业)并尝试在作业仍在运行模式时执行普罗米修斯查询,但我没有得到任何结果:-(在这里你可以看到我的作业正在运行。
使用简单过滤器时container_cpu_usage_seconds_total
,我可以看到 namespace="jobs"
解决方案
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
推荐阅读
- huawei-mobile-services - 华为地图套件 - 崩溃点击返回按钮
- java - ExecutorService submit() - 并行执行(非阻塞)
- c# - .NET Framework - 环境变量返回 null
- perforce - 我们如何在 WIN server 2019 中为 perforce depot 安装和设置 Perforce 文件资源管理器 P4vx?
- signalr - 如何使用 aspnet core SignalR 向用户发送私人消息?
- java - 请求数组中的循环
- apache-spark - 如何为火花任务或地图操作设置超时?(或跳过长时间运行的任务)
- r - 在 R 中恢复 HoltWinters 预测的固定数据
- rest - 对于 REST 服务中的应用程序错误,建议使用哪种 HTTP 状态代码?
- postgresql - 无法使用 MetricBeat 从 RHEL 7 中的 PostgreSQL 获取指标