Нотификации в telegram о падении приложения, через графану
Это не анонсированная третья часть. Первые две здесь:
1. Подготовка Django приложения для локальной разработки и деплоя
2. Django приложение в докере. Логирование и мониторинг (тоже в докере)
Не анонсированная, потому что этот способ подходит для любого приложения с метриками через Prometheus, но как настраивать их для конкретного Django приложения можно посмотреть в предыдущих частях.
Для начала нужно создать telegram-бота, находим бота BotFather и создаем нового бота в нем с помощью команды /newbot, получаем токен вашего бота.
Теперь нужно получить ChatId. Для этого, напишите вашему новому боту сообщение, а затем откройте в браузере (желательно инкогнито, а еще лучше curl-ом) следующий адрес
https://api.telegram.org/bot
Заменив
Значение поля id внутри объекта chat — это и есть ваш Chat ID.
Ну, основное позади.
Далее переходим в графану Home → Alerting → Contact points
Там у вас, если еще не было Contact points редактируем единственный существующий.
Вводим любое название и в поле Integration выбираем Telegram.
Там указываем BOT API Token и Chat ID полученные ранее, сохраняем.
Переходим в Alert rules в том же Alerting и создаем новое правило — New alert rule.
Тут мы подразумеваем, что у вас уже есть настроенный на приложение Prometheus, хотя бы из предыдущих шагов.
Итак, в первом поле вводим любое название правила. Ниже в А выбираем Prometheus, в Metric вводим up и в лэйблах выбираем приложение. Далее в B выбираем input A, Function — Min, Mode — Strict. В С (Threshold) выбираем Input — B, ниже IS BELOW — 1.
Можно нажать Preview и убедиться, что правило отрабатывает.
Далее в п.3 можно выбрать папку, куда положить правило и период ожидания.
4 пункт заполняем так же по желанию.
В п.5 указываем произвольные лэйблы для правила. Они по-сути нужны для верного выбора нотификатора.
Ну и последний в статье этап — выбор политик нотификации: переходим в Notification policies там же в Alerting, нажимаем три точки напротив Default policy — Edit и меняем Default contact point на созданную нами на соответствующем этапе. Сохраняем. Все!
Теперь у нас настроены нотификации от бота в телеграмме если метрика up в Prometheus-е упадет ниже 1.