Apache Airflow 2.2: практический курс: Продвинутый Apache Airflow / Логирование в Apache Airflow
Идея заключается в том, чтобы добавить дополнительный обработчик (Handler) для логера airflow.task
, который будет "ловить" сообщения (Log Record) уровня ERROR
и посылать их в телеграм через телеграм-бота. Для работы с телеграмом я использую библиотеку pyTelegramBotAPI.
from logging import Handler, LogRecord
import telebot
class TelegramBotHandler(Handler):
def __init__(self, token: str, chat_id: str):
super().__init__()
self.token = token
self.chat_id = chat_id
def emit(self, record: LogRecord):
bot = telebot.TeleBot(self.token)
bot.send_message(
self.chat_id,
self.format(record)
)
Такой же пример обработчика я описывал в статье про logging. Предварительно вам нужно создать телеграм-бота, используя бота BotFather. Если вы раньше никогда не работали с телеграм-ботами, то почитайте мою статью про создание телеграм-ботов на python.