如何在Prometheus中正确地将丢失的数据点转换为0?

时间:2018-10-08 18:26:18

标签: time-series prometheus

我们有一个警报,希望根据先前的5m指标(例如,如果该值大于0)触发。但是,如果度量标准为0,则不会将其写入prometheus,因此在该时间段内不会返回。

结果是我们可能有一个示例数据集:

-60m  |  -57m  |  -21m  |  -9m  |  -3m    <<< Relative Time
   1  ,  0    ,    1    ,  0    ,  1      <<< Data Returned

最终会导致每次度量标准高于0时都会触发警报,不仅是对于0而言,它还高于5m。我尝试写在末尾的OR on() vector()后面写我们的查询,但是它对返回的数据集做一些有趣的事情:

values:Array[12]
 0:Array[1539021420,0.16666666666666666]
 1:Array[1539021480,0]
 2:Array[1539021540,0]
 3:Array[1539021600,0]
 4:Array[1539021660,0]
 5:Array[1539021720,0]
 6:Array[1539021780,0]
 7:Array[1539021840,0]
 8:Array[1539021900,0]
 9:Array[1539021960,0]
 10:Array[1539022020,0]
 11:Array[1539022080,0]

由于某种原因,它会将“真实”数据放在数组的开头(即使我的开始时间早于1539021420),并从该时间戳记开始继续进行。

对于可能不存在的数据点,让Prometheus返回0的正确方法是什么?

要清楚,这不是Alertmanager的问题-我正在使用其他工具来对此数据进行警报。

0 个答案:

没有答案