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

如何在Prometheus中查询离散值并筛选符合特定条件的应用

用Prometheus筛选过去一周每天下午5点指标值恒为5的应用

完全可以实现,以下是具体的PromQL查询和逻辑说明:

核心查询

sum(
  count_over_time(
    (mygauge == 5)
    and (abs(timestamp(mygauge) - (floor(timestamp(mygauge)/86400)*86400 + 17*3600)) < 60)
  [1d] offset vector(0,1,2,3,4,5,6)*86400
  ) by (app)
) by (app) == 7

逻辑拆解

  • 样本精准筛选:

    • mygauge == 5:直接锁定指标值为5的样本
    • abs(timestamp(mygauge) - (floor(timestamp(mygauge)/86400)*86400 + 17*3600)) < 60:确保样本时间落在当天下午5点(17:00)前后60秒内,避免采样时间微小偏差导致漏选或误判
  • 按天聚合统计:

    • [1d] offset vector(0,1,2,3,4,5,6)*86400:分别拉取过去0到6天(共7天)的每日数据,通过offset实现历史时间窗口的偏移
    • count_over_time(...) by (app):按应用标签统计每日符合条件的样本数(因每天仅在下午5点有一个有效样本,结果只会是1或0)
  • 最终结果筛选:

    • sum(...) by (app):将7天的统计结果求和,得到每个应用过去一周内下午5点值为5的天数
    • ==7:筛选出求和结果等于7的应用,即过去一周每天下午5点指标值均为5的目标应用

注意事项

  • 如果当前日期还未到下午5点,当天的统计结果会是0,若要排除当天数据,可将vector(0,1,2,3,4,5,6)改为vector(1,2,3,4,5,6,7),查询过去7天(不含当天)的数据
  • 可根据实际采样间隔调整时间偏差阈值(<60),比如采样间隔为5分钟,可放宽到300秒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:15:47