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

如何使用PromQL查询Prometheus中存在有效数据的天数

Prometheus 高效统计30天内有有效数据的天数方案

你目前逐天发起30次查询的方案性能损耗过高,仅需要1次PromQL查询即可实现需求:

可用查询语句

count_over_time(
  (exists_over_time(你的指标名{标签匹配规则}[1d]))[30d:1d]
)

语句逻辑说明

  • 内层 exists_over_time(你的指标名[1d]):判断单个1天窗口内是否存在该指标的有效样本,存在则返回1,不存在返回空
  • 中间的 [30d:1d] 是Prometheus子查询语法,代表将过去30天的时间区间按1天为步长进行切分,逐段执行内层的判断逻辑
  • 外层 count_over_time 统计所有返回值为1的点的数量,最终结果就是过去30天内有有效数据的总天数

适配调整方案

  • 如果你需要判断的是「当日有超过N条样本才算有效」,可以将 exists_over_time 替换为 count_over_time(你的指标名[1d]) > N
  • 如果你需要对齐自然日(比如按北京时间的0点作为日期切分点,而非滚动24小时窗口),可以在指标后追加 offset 偏移量 修正窗口起始位置即可
  • 如果需要按指标标签分维度统计,直接在指标的标签匹配规则中增加对应过滤条件即可,无需修改整体语句结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:21:01