Это не анонсированная третья часть. Первые две здесь:
1. Подготовка Django приложения для локальной разработки и деплоя
2. Django приложение в докере. Логирование и мониторинг (тоже в докере)
Не анонсированная, потому что этот способ подходит для любого приложения с метриками через Prometheus, но как настраивать их для конкретного Django приложения можно посмотреть в предыдущих частях.
Для начала нужно создать telegram-бота, находим бота BotFather и создаем нового бота в нем с помощью команды /newbot, получаем токен вашего бота.
Теперь нужно получить ChatId. Для этого, напишите вашему новому боту сообщение, а затем откройте в браузере(желательно инкогнито, а еще лучше curl-ом) следующий адрес:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
Заменив <YOUR_BOT_TOKEN> на токен вашего бота. В ответе вы получите json с информацией о последних сообщениях, отправленных вашему боту. В этом JSON найдите поле chat, которое будет содержать ваш id.
Значение поля 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.