我有一个指标(规)updated
,该指标的module
标签设置为模块名称。在成功执行“更新”(无论其含义)之后,模块现在将其设置为UTC。其中一个模块(称为“主要”模块)必须在其他模块任何更新后的10分钟内执行更新。
尝试#1 从“主要”指标中提取所有其他指标的最大值:
(max(updated{module="main"}) - max(updated{module!~"main"}))
部分有效。在“其他”指标已更新但“主要”指标尚未更新的那些时间段内,它失败:
尝试#2
选择偏移10分钟的“其他”指标,因此我们总是将“主要”更新时间与当前最新的“其他”指标更新时间进行比较-10m瞬间,这使“主要”模块有10分钟的工作时间:
(max(updated{module="main"}) - max(updated{module!~"main"} offset 10m))
结果也不佳:
现在,两次更新之间会有很大的延迟(在这种情况下为8000秒),因为我们从当前的“主要”时间中减去了太旧的“其他”更新时间。
我是PromQL的新手,所以很可能我错过了一些简单的基本方法。