Прометей avg_over_time и если не включает в себя слишком много данных - PullRequest
0 голосов
/ 16 апреля 2019

на одной из моих панелей 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-минутная версия.

...