prometheus - 在查询中插入缺失的 Prometheus 值
问题描述
我的 IoT 设备被外部 Prometheus 代理抓取,该代理将数据上传到 Grafana Cloud。
它输出两个有趣的指标:uptime
一个是自设备启动以来的 CPU 滴答数,然后last_update
是当前时间值(通过 NTP 检索)。
我正在寻找的是一个跟踪自上次更新以来经过的时间的指标,因此我可以在设备一小时内未报告时设置警报。我以为我可以做类似的事情:
time() - last_update{job="charger"}
这可以正常工作,并显示这两个值之间存在约 2 秒的偏差。但是在数据丢失的瞬间没有数据,所以我正好错过了我有兴趣获得的东西。正是在这段时间内,该值应该上升,并最终触发警报阈值。
当没有数据时,还可以选择使用up
which 确实具有价值0
,但我不确定如何使其工作。
关于如何实现此查询的任何想法?
对此类问题的其他答案(例如:关于缺少系列/数据的警报)侧重于更新抓取配置,而不是更新查询。
谢谢,
-mk
解决方案
如果您只想在过去 1 小时内根本没有报告并且您的指标“上升”时才发出警报,我会使用如下查询:
sum_over_time(up[1h]) == 0
你也可以用它来调音。<0.5 使其在一半时间下降时发出警报或将其设置为 <1 以便即使它失败一次也会触发,
推荐阅读
- c# - 如何使用 xbap 应用程序关闭 IE 选项卡
- cookies - HapiJS Samesite 配置 + Cloudflare (DNS)
- regex - 使用正则表达式查找没有 PHPDoc 的 PHP 中的所有方法
- linux-kernel - getnstimeofday 返回的最大值
- python - 如何处理包含在具有不同大小的元素列表中的数据来训练 LSTM?
- c++ - 为什么析构函数中的异常会在 msvc 2017 中的 c++17 中创建内存泄漏
- c# - 以编程方式填充分配给对象的属性集定义中的数据
- swift - 从非父视图控制器分配委托
- reactjs - 滚动时反应导航切换标签栏
- piranha-cms - 获取/设置块上的列表字段