prometheus - 是否可以确定目标上次上升/下降的时间?
问题描述
Prometheus 提供了up()
告诉您目标是向上还是向下的功能。您可以使用在给定的时间段内计算这改变了多少次,changes()
甚至可以使用它avg_over_time()
来查看它的时间百分比。
但我想找出值发生变化的时间,特别是找出目标上升(或下降)的时间。这可能吗?显然,我可以添加自己的指标,但如果可能的话,我宁愿不必为每个检测目标添加新指标。
解决方案
考虑以下示例:
time() - max_over_time(timestamp(changes(up[1m]) > 0)[24h:1m])
此查询基于在过去 N 分钟内发生任何更改的最大时间戳(1m
在我的示例中)。从当前时间中减去将为您提供最新更新的秒数。确保您使用的间隔至少与您的刮擦间隔一样长,并且理想情况下更长一些,以覆盖任何错过的刮擦等。只需使用各种指标和间隔,然后选择最适合您的。
出于效率原因,您还可以考虑添加记录规则,例如:
groups:
- name: last-update
rules:
- record: last-update
expr: |
timestamp(changes(up[1m]) > 0)
or
last-update
推荐阅读
- javascript - 如何从第二个下拉值中从数据库中获取数据
- javascript - KendoUI - 选择时禁用某些节点
- binding - 如何在 SwiftUI(或替代方法)的主体方法中初始化派生变量
- sql - 如何创建一个将记录从一个表插入到另一个表并检查有效性的过程?PL/SQL
- tensorflow - gRPC+MPI 是否需要 RDMA?
- python - 如何解决问题 TypeError: cannot serialize '_io.BufferedWriter' object?
- swift - 在 calloutAccessoryControlTapped 时更改传递给“MapView:UIViewRepresentable”的 BindableObject 的值
- java - ReentrantReadWriteLock 在 ConcurrentHashMap::compute() 中使用时挂起
- scala - 如何根据字符串动态构造带参数的子类
- php - 是什么导致我的 Heroku PHP 应用程序中的引导失败?