prometheus - PromQL 中具有时间偏移的两个指标之间的差异
问题描述
我有一个 metric (gauge) 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))
结果也不好:
现在我们在更新之间有很大的延迟(在这种情况下为 8K 秒),因为我们从当前的“主要”时间中减去了一个太旧的“其他”更新时间。
我是 PromQL 的新手,所以很可能我错过了一些简单的基本方法。
解决方案
推荐阅读
- php - 如何将电话中的国际部分设为可选
- ios - 如何在 iOS 上将关键字搜索功能与 Web 浏览器集成?
- postgresql - 通过在 Array 列中搜索特定值来选择行
- c# - 如何从外部 ListView 收集值并将其用作填充新 ListView 列的条件?
- c++ - 函数内部的内存地址
- android - 从相机获取图像或从图库上传并显示在 ImageView (Android Studio) 后,保存图像是 SharedPreferences
- svn - 将 svn 分支拉到主干
- heroku - 安装python openbabel包heroku
- javascript - 如何以随机起点循环?
- mysql - mysql查询以获取列表,包括数组中的重复项