Собственно и всё:
- алертменеджер каждые 5 минут отправляет вебхуки на URL cross-alerting
- скрипт запускает веб-сервер, который слушает POST-запросы на /api/alert.
- каждый раз, когда приходит запрос на этот endpoint, обновляется время последнего вебхука.
- в фоновом режиме работает тред, который проверяет, как давно приходил последний вебхук.
- если вебхук не приходил дольше, чем WEBHOOK_CHECK_INTERVAL(2 минуты), система считается "упавшей", и отправляется уведомление в Slack.
- если система была "упавшей", но вебхук пришел, отправляется уведомление о восстановлении.
- если pod был перезапущен в течение последних 30 секунд, отправляется уведомление о восстановлении.
* Давайте ток не душнить про овнокод на питоне и докерфайл, задачи по оптимизации не стояло.
Надо было просто написать так, чтобы перекрёстный мониторинг и алёртинг работал, он работает, а значит задача решена. Для себя можете писать Свой Идеальный Божественный Код.
Post #47
362
- 👍 3