на одной из моих панелей Grafana я бы хотел показать все метрики экземпляров, которые имели некоторое время простоя в течение проверенного периода времени (последние 12 часов).Но отфильтруйте все остальные без простоев.
Я использую данные, предоставленные экспортером блэкбокса prometheus, и я бы хотел получить avg_over_time для всех экземпляров, которые не доступны на 100% в течение периода IЯ смотрю (например, 12 часов).
Мой базовый запрос выглядит так:
avg_over_time(probe_success{job="blackbox"}[15m])
Для того, чтобы отфильтровать все, что не работает, как я ожидал, я попробовал sth.вот так (пытался сделать его читабельным):
_base_qery_ unless on(instance) _base_qery_ < 0.95
Но это также будет включать серии с метками instance , которые не отображаются внутри _base_qery_ < 0.95
.
Из официальной документации я ожидал, что этот тип фильтрации
vector1, если только вектор2 не приведет к вектору, состоящему из элементов вектора1, для которого нет элементов в векторе 2 с точно совпадающей меткойнаборы.Все совпадающие элементы в обоих векторах отбрасываются.
В настоящее время я могу обойти этот запрос (где 12h - полный диапазон времени, который я наблюдаю с Grafana):
avg_over_time(probe_success{job="blackbox"}[15m]) and avg_over_time(probe_success{job="blackbox"}[12h]) < 1
Но я бы хотел, чтобы работала 15-минутная версия.