在我的一个 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 分钟范围的版本正常工作。