У меня в марионетке определена следующая проверка sensu
sensu::check { 'check_kubernetes_kubelet':
interval => 60,
timeout => 30,
command => 'check_http -H :::name::: -p 10248 -u /healthz -e "200 OK"',
subscribers => ['kubernetes_minion'],
contacts => ['sensu_high'],
}
Я хочу добавить к этой проверке повтор команды. Эта проверка должна начать предупреждать свои контакты только после того, как N последовательных выполнений команд вернут ошибку.
В этом примере, скажем, N равно 2. Скажем, сбой происходит сразу после check_X. Через 60 секунд check_X + 1 вернет ошибку. Еще через 60 секунд check_X + 2 также не сработает. Я хочу, чтобы оповещение запускалось после ошибки check_X + 2.
Я думаю сенсу фильтры может быть полезно. Похоже, мне нужно создать фильтр вроде Вот. Но тогда как мне связать этот фильтр с этой проверкой? Нужно ли мне также определять собственный обработчик?
Вы должны использовать обработчики. Когда ваши проверочные триггеры и событие, оно попадает в обработчик или обработчики, которые вы для него определили (ищите "обработчик" в чеки). Затем с каждым обработчиком может быть связан один или несколько фильтров.
Из документа:
Когда сервер Sensu обрабатывает событие, он проверяет определение обработчика (или обработчиков). Перед запуском каждого обработчика сервер Sensu сначала применит любой настроенный фильтр (или фильтры) для обработчика.
Вхождения - это то, что вам нужно использовать.
occurrences => 2,