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

如何编写PromQL查询统计7天内CPU使用率超80%的次数?

解决PromQL统计7天内CPU超80%次数的问题

首先得明确你要的是「原始样本中CPU超80%的总次数」,还是「CPU超80%的时间段(比如按固定间隔统计)的次数」,两种场景的写法不一样:

场景1:统计所有原始样本中超80%的次数

PromQL里直接用比较运算符会过滤掉不满足条件的样本,要得到布尔值(满足为1,不满足为0)需要加bool修饰符,再用count_over_time统计过去7天内值为1的样本数:

count_over_time((cpu_percent{name="abc", cluster="def"} bool > 80)[7d:])
  • bool > 80:把每个样本转换成1(CPU超80%)或0(未超)
  • [7d:]:指定统计过去7天的所有原始数据
  • count_over_time:统计其中值为1的样本总数

场景2:按固定时间间隔统计超80%的时间段次数

如果想统计「每X分钟内CPU最高值超过80%的区间数量」(比如避免短时间内连续重复计数),可以先按区间取最大值,再判断是否超阈值,最后统计符合条件的区间数:

count_over_time((max_over_time(cpu_percent{name="abc", cluster="def"}[5m]) > 80)[7d:5m])
  • max_over_time(...):每5分钟取一次CPU使用率的最大值
  • >80:过滤出最大值超80%的区间
  • [7d:5m]:过去7天,按5分钟为步长划分区间
  • count_over_time:统计符合条件的区间总数

你之前用count_over_time和max_over_time没得到期望结果,大概率是没加bool修饰符(导致只返回满足条件的原始值,而非布尔值),或者步长/时间范围的写法不对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:04:59