普罗米修斯avg_over_time,除非包含过多数据

时间:2019-04-16 11:22:13

标签: prometheus prometheus-blackbox-exporter

我想在我的Grafana仪表板之一上显示所有实例的所有指标,这些实例在检查的时间范围内(过去12小时)有一些停机时间。但是,请过滤掉所有其他停机,而无需停机。

我正在使用普罗米修斯黑盒导出器提供的数据,我很乐意在我查看的时间范围内(例如12h)获得所有不是100%可用的实例的avg_over_time。

我的基本查询如下:

int Time::getHours() const
{
    return hours + (hours == -1);
}

为了滤除一切不正常的行为,我尝试了某事。像这样(试图使其可读):

hours = (getHours() + 1) % 24 - (hours == 23);

但这也将包括带有 instance 标签的系列,这些标签不会出现在avg_over_time(probe_success{job="blackbox"}[15m]) 内。

official documentation中,我期望使用这种类型的过滤器

  

vector1,除非vector2导致一个由vector1的元素组成的向量,而vector2中没有元素具有完全匹配的标签集。两个向量中所有匹配的元素都将被删除。

我目前的解决方法是此查询(其中12h是我用Grafana观察到的整个时间范围):

_base_qery_ unless on(instance) _base_qery_ < 0.95 

但是我很想让15分钟范围的版本正常工作。

0 个答案:

没有答案