在 Prometheus 中填充时间序列中的缺失值

问题描述 投票:0回答:1

我有一个在 Prometheus 中有多个时间序列的指标。我想用默认值(比如 0)来填补这个指标中的空白。最好的方法是什么?

OR
vector(0)
不起作用,因为有多个时间序列 - Prometheus 所做的就是给我一个始终为 0 的新时间序列。我也不想使用记录规则。

pinot_server_llcPartitionConsuming_Value{} OR  vector(0)
结果如下:

time-series prometheus grafana monitoring metrics
1个回答
0
投票

要填补空白,不超过1小时,可以使用类似查询

metric or last_over_time(metric [1h]) * 0

如果找到,此查询将返回指标。如果没有,它将获取最新的度量样本(以简单地保留所有标签)并返回它乘以 0。


请注意,显示的查询实际上并不检查“间隙”。即使指标“消失”(例如,由于目标不可用),它也会继续生成值一小时。

如果您确实需要专门检查间隙,则需要围绕替换实施检查。它可能看起来像

metric 
 or (
  last_over_time(metric [1h]) * 0
  and last_over_time(timestamp(up)[1h:1m] offset -1h) > time()
 )

这里,如果在计算可能的替换的时间戳后一小时内再次报告指标,则会发生 0 替换。

© www.soinside.com 2019 - 2024. All rights reserved.