Используемые инструменты:
SQL (ClickHouse), Python (PandaHouse, Pandas, NumPy, Matplotib, Seaborn, Apache Airflow).
Ситуация:
Социальная сеть (приложение) имеет 2 раздела лента новостей для просмотра рекомендованных постов и сообщения.
Необходимо написать систему алертов для приложения, чтобы своевременно реагировать на технический сбои в работе сервиса, сбои в ETL-процессах, ошибки при обработке данных, внешние факторы и т.д.
Система должна с периодичность каждые 15 минут проверять ключевые метрики — такие как активные пользователи в ленте / мессенджере, просмотры, лайки, CTR, количество отправленных сообщений.
Задача:
Изучите поведение метрик и подберите наиболее подходящий метод для детектирования аномалий.
В случае обнаружения аномального значения, в чат должен отправиться алерт — сообщение со следующей информацией: метрика, ее значение, величина отклонения.
Автоматизируйте систему алертов с помощью Airflow.
Действия:
На основе исторических данных выбран метод выявления аномальных значений (межквартильный размах) и подобраны параметры для каждой метрики.
Написан Dag для Airflow, выполняемый каждые 15 минут и включающий функции:
для извлечения данных из БД Clickhouse;
для определения аномальных значений;
для создания отчета (сообщение и графики);
для отправки отчета.
Результат:
Результат представлен в виде файла Python.
Файл готов для загрузки в Apache Airflow, для работы Dag необходимо указать в Airflow переменные для подключения к БД (host и пароль) и использования telegram-бота (bot token).