You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PromQL结合node-exporter查询多服务器近1分钟峰值CPU使用率报错

解决PromQL获取多服务器1分钟峰值CPU使用率的问题

错误原因分析

  • 第一个查询报错:max_over_time函数要求输入范围向量,但sum(1-rate(node_cpu_seconds_total{mode="idle", instance!="epgp003:9401"}[1m])) by(instance)返回的是瞬时向量,类型不匹配导致解析失败。
  • 第二个查询报错:语法结构错误,by(instance)属于sum()函数的分组逻辑,必须放在sum()的括号内部,而非max_over_time参数的外部。
  • 第三个查询问题:返回的是每个实例各自的1分钟CPU峰值,而非所有实例中的单一最大值。

正确PromQL查询语句

max(max_over_time((1 - rate(node_cpu_seconds_total{mode="idle", instance!="epgp003:9401"}[1m])) by (instance)[1m:]))

语句拆解说明

  1. 计算单实例CPU使用率:1 - rate(node_cpu_seconds_total{mode="idle", instance!="epgp003:9401"}[1m])
    通过rate计算空闲CPU的每秒速率,用1减去该值得到当前实例的CPU使用率。
  2. 按实例分组:(...) by (instance)
    将计算结果按服务器实例分组,得到每个实例的CPU使用率瞬时向量。
  3. 转换为范围向量:[1m:]
    将瞬时向量转换为最近1分钟的范围向量,满足max_over_time的参数要求。
  4. 取单实例1分钟峰值:max_over_time(...)
    计算每个实例在最近1分钟内的CPU使用率峰值。
  5. 取全局最大值:max(...)
    对所有实例的峰值结果取最大值,得到多台服务器中最近1分钟的CPU使用率峰值。

内容的提问来源于stack exchange,提问作者user1876484

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:52:30