Prometheus 如何忽略ProMQ查询中缺少的数据点?

Prometheus 如何忽略ProMQ查询中缺少的数据点?,prometheus,promql,Prometheus,Promql,我正在尝试执行一个复杂的promql查询。 基本上,我想将过去1小时的平均值与过去3天的同一小时(平均值)进行比较: 我的问题是,如果前几天(星期六、星期日和节假日)有一天(或更多天)没有数据,那么我在整个查询中会遇到“找不到数据点”错误。 我希望能够忽略缺少的天数,或者使用具有数据点的最后一天。通常,在ProMQ中执行类似于a+b的操作时,b可能缺少一些a的标签组合,您可以将其编写为: a + (b or a * 0) 或者,在您的情况下,由于您使用的是除法和多个b指标(实际上): 但是b指

我正在尝试执行一个复杂的promql查询。 基本上,我想将过去1小时的平均值与过去3天的同一小时(平均值)进行比较:

我的问题是,如果前几天(星期六、星期日和节假日)有一天(或更多天)没有数据,那么我在整个查询中会遇到“找不到数据点”错误。
我希望能够忽略缺少的天数,或者使用具有数据点的最后一天。

通常,在ProMQ中执行类似于
a+b
的操作时,
b
可能缺少一些
a
的标签组合,您可以将其编写为:

a + (b or a * 0)
或者,在您的情况下,由于您使用的是除法和多个
b
指标(实际上):

但是
b
指标缺失越多,您的
a
指标看起来就越“正常”。(例如,如果前3天中没有任何一天的值,结果将为
1

或者,如果您只是希望最后一天有数据点(如果所有
b
s都缺失,则再次返回到
a
):

a + (b or a * 0)
a / ((b1 or a) + (b2 or a) + (b3 or a)) * 3
a / (b1 or b2 or b3 or a)