Как использовать функцию часа () в PromQL? - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь настроить оповещение в файле alert.rules Прометея, который срабатывает только в течение определенных периодов времени. Я уже тестировал приведенный ниже блок кода без временных ограничений внутри тега expr, и он работает абсолютно нормально.
Как указано в Документация PromQL: hour () , hour() возвращает значение в диапазоне от 0 до 23 в зависимости от текущего UTC.

- alert: test_down 
        expr: absent(container_memory_usage_bytes{name="test_ap"}) and hour() > 5 and hour() < 22
        for: 30s
        labels:
          severity: critical
        annotations:
          summary: "test_ap down"
          description: "test_ap is down for more than 30 seconds."

Но здесь оповещение не отправляется. Кто-нибудь знает, почему ничего не запускается и как я могу это исправить?

РЕДАКТИРОВАТЬ: Я уже решил это. Я не понимаю, почему я должен делать это так, как я, но работает следующее:
заменить and hour() > 5 and hour() < 22 на and ON() hour() > 5 < 22

1 Ответ

1 голос
/ 03 июня 2019

В этом случае ON () - это операция соединения, которая игнорирует совпадающие метки из левой части. В противном случае Прометей будет ожидать одинаковый набор меток на левой и правой стороне. Вы можете прочитать больше в этом посте .

...