prometheus - Prometheus avg_over_time 和除非包含太多数据
问题描述
在我的一个 Grafana 仪表板上,我很想显示在检查的时间范围内(最后 12 小时)有一些停机时间的实例的所有指标。但是在没有停机的情况下过滤掉所有其他人。
我正在使用 prometheus blackbox 导出器提供的数据,我很想获得在我正在查看的时间范围内(例如 12 小时)不是 100% 可用的所有实例的 avg_over_time。
我的基本查询如下所示:
avg_over_time(probe_success{job="blackbox"}[15m])
为了过滤掉所有不符合预期的东西,我尝试了某事。像这样(试图保持可读性):
_base_qery_ unless on(instance) _base_qery_ < 0.95
但这也将包括带有实例标签的系列,这些标签没有出现在_base_qery_ < 0.95
.
从官方文档中,我期望这种类型的过滤
vector1 除非 vector2 产生一个由 vector1 的元素组成的向量,对于这些元素,vector2 中没有与标签集完全匹配的元素。两个向量中的所有匹配元素都被删除。
我暂时的解决方法是这个查询(其中 12 小时是我用 Grafana 观察到的完整时间范围):
avg_over_time(probe_success{job="blackbox"}[15m]) and avg_over_time(probe_success{job="blackbox"}[12h]) < 1
但我很想让 15 分钟范围的版本正常工作。
解决方案
推荐阅读
- android - 隐式 Intent 的安全性如何?
- javascript - 超过 1 个系列的 Highchart 显示未显示
- python - Python3.7:多行字符串之间的正则表达式?
- corda - Corda:在一个流程中创建和使用相同的状态?
- java - 对 assertEquals 的模糊引用
- python - 从 Google Composer (Airflow) 中检索 Kubernetes 的秘密
- android - 没有符合条件的设备进行应用安装。| 安卓 | 奥利奥 8.1.0
- php - 无法使用 Slim 框架将图像保存到数据库和文件夹
- java - 我应该在流中改变对象吗?
- c# - 无法将 lambda 表达式转换为 c# 中的预期委托类型