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

Prometheus能否按日统计指定4小时窗口内的Counter增量总和?

每日指定时段任务成功次数统计方案(Prometheus+Grafana)

需求可行性确认

完全可行。你之前用and on() hour() > 12 and on() hour <= 16无效的原因是:这种写法是过滤当前查询时刻的小时,而非统计任务运行时段内的增量,因此无法得到每日12:00-16:00的总和。

核心PromQL查询语句

单任务统计(指定job_id)

sum(
  increase(job_success{job_id="abc"}[4h])
  * ignoring() (hour(time()) >= 12 and hour(time()) < 16)
)

多任务批量统计+按天聚合(适配30天周期展示)

sum by (job_id) (
  increase(job_success[4h])
  * ignoring() (hour(time()) >= 12 and hour(time()) < 16)
)

逻辑说明

  1. increase(job_success[4h]):计算每4小时窗口内的任务成功增量
  2. hour(time()) >=12 and hour(time()) <16:筛选出时间落在12:00-16:00区间的样本,非该时段的样本会被乘以0过滤
  3. sum by (job_id):按任务ID聚合得到每日该时段的总成功次数

Grafana图表展示配置

  • 面板类型:选择「Time series」
  • 时间范围:设置为「过去30天」
  • 查询配置:填入上述PromQL,若需支持多任务,可将job_id设为Grafana变量
  • 聚合设置:在「Query options」中把「Interval」设为1d,确保按天分组展示
  • 样式优化:Y轴设为整数(因为次数是离散值),Legend格式设为{{job_id}} 下午任务成功次数

告警规则配置

  • 告警规则:新建Grafana告警规则,使用上述PromQL作为查询语句
  • 触发条件:根据需求设置阈值,例如$B == 0(下午任务未运行时告警)
  • 评估时机:将评估频率设为每日16:30之后,评估时间范围设为1d,确保统计完当日12-16点的数据再触发告警
  • 通知配置:绑定邮件/企业微信等通知渠道,告警消息中包含job_id和当日成功次数详情

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:05:14