Skip to content

HagasSaan/notifier

Repository files navigation

Tests codecov

Notifier

Данный проект предоставляет функционал для оповещения пользователей о каких-то событиях (например, об алертах в Prometheus, открытых PR's на Github, либо сообщения, генерируемые скриптом). Пользователь может получить оповещение несколькими способами: Telegram-бот (реализовано в проекте) или свой скрипт-потребитель сообщений.

Принцип действия (configuration.run):

  • сообщения, сгенерированные готовыми или своими продьюсерами (сущность, создающая сообщения) могут быть обработаны фильтрами и отправлены в консьюмеры (сущность, принимающая сообщение). Данный процесс сохраняется как конфигурация, и может быть запущена вручную либо по расписанию, либо вручную. Конфигурацию необходимо создать предварительно перед созданием расписания для него.
  • Конфигурация может быть создана и запущена через REST API или через GraphQL
  • Сервер может быть горизонтально масштабирован посредством увеличения количества воркеров для celery.
  • Как продюсер, так и консьюмер можно написать и добавить через административную панель

Основные использованные фреймворки:

  • Django v3.1
  • Celery v5
  • Django REST API v3.12
  • GraphQL v2.1

TODO:

  • Переделать USERNAME_KEY в ADDITIONAL_INFO_KEY, после чего уже там искать 'username', и прочие ключи
  • Переделать взятие инфы из продюсеров и консьюмеров в configuration.run на celery jobs
  • Прикрутить консьюмер (vk)
  • Прикрутить продюсер (redash) - на основе sql запроса генерация сообщения
  • Прикрутить продюсер (prometheus) - на основе созданных алертов генерация сообщений
  • Кастомизировать формат сообщений (текущий формат сделать как default)
  • На сладкое
    • Разобраться, как отдавать статичные файлы при DEBUG = false, отключить дебаг
    • Прикрутить Nginx
    • Зарезолвить все возникшие TODO
  • Написать нормально ридми. Хотя бы раз в жизни
  • Сделать документацию
    • Как написать свой продюсер\консьюмер
    • Как написать свой фильтр и подключить его
    • Попросить пару людей почитать, понятно ли
    • Прочитать самому спустя полгода

About

Notifier with producers and consumers

Resources

Stars

Watchers

Forks

Languages