Дорожная карта для Pepeunit
0.6.0 Базовый функционал для Telegram
- repo
- базовый поиск c возможностью выбрать один из вариантов, c пагинацией
- просмотр статистик
- кнопка обновления Unit
- синхронизации Repo
- отдача ссылки на Repo фронтовой
- unit
- базовый поиск c возможностью выбрать один из вариантов, c пагинацией
- просмотр состояния
- логов c пагинацией
- возможость вызвать все команды
- возможность скачать архивы
- отдача ссылки на Unit фронтовой
- Просмотр пермишенов
- возможность открыть UnitNode
- возможность посмотреть на env файл
- UnitNode при открытии из unit
- базовое отображение всех которые есть у Unit c возможностью выбрать один из вариантов, c пагинацией
- просмотр состояния
- пермишены
- отдача ссылки на UnitNode фронтовой
- Добавить ссылку на графану
0.7.0 Система агрегации данных
Дать Пользователю создавать временного слушателя mqtt топиков, в идеале внешний сервис на go, а на бек добавить обратную очередь на сохранение:
- Он бы подписывался на все или часть топиков пользователя
- на определённое время
- c ограничением по объёму сохраняемой информации
- Нужно несколько типов слушателей:
- долговременные
- агрегационные со смещающимся окном
- подумать о возможности динамического размера окна
- Стратегии сохранения
- хранятся только данные уже рассчитанные
- cохранение данных в телегу
- clickhouse
- Система собираемых бордов с данными для Graphana и TG интеграции
Анализ динамического состояния узла
- Анализ общего числа сообщений поступающих на бэкенд
- mqtt
- gql
- rest
- aiogram
- Трекер занятых ресурсов - cpu, ram
- Оставшееся место
- Аптайм
- Трекер ошибок, какие возникают чаще, а какие реже
- Трекер алерт крашей, с дросселированием - в телегу админу, надо запоминать сколько раз возник
Анализ нагрузки
На эти метрики будет опираться монетизация и настройки пользователей
- Система отслеживания нагрузки на топики Unit - Расчёт желательно на стороне EMQX
- Система отслеживания средней нагрузки на один Unit - Метрика загрузки для repo
- Метрикой должен быть MPS - запросы в секунду
- Нужна автоматическая отсечка, если Unit превысил лимиты
Алерты
- Нужно установить начиная с какого уровня лога, будет отправляться alert
- Дросселирование в телеграм должно работать через Backend, а значит нужна пременная, регламентирующая расстояние между алертами в телеге
- EMQX должен пересылать алерты на определённый тип ошибок, на основе Rule Engine
Система бордов
- Интеграция с Графана, с возможностью авторизовываться через существующий аккаунт
- Нужны базовые борды для админа - динамическое состояние, анализ нагрузки, трекинг ошибок
- Нужна возможность конфижить борды с фронта, по пользовательским инициативам, этот функционал должен быть продублирован хотябы частично в телегу
Монетизация для держателей инстансов
- Подключаемая монетизация на основе Telegram и криптовалют
- Основана должна быть на нагрузке от Unit, который создаёт юзер
- Возможность настройки монетизации для администратора
- Агригируещие топики должны быть монетизированы с другой политикой, т.к. они несут накладные расходы на хранение данных
Система грейдов инстансов
- Добавить итеративность в проверку нагрузки
- Добавить хэш в отчёт, чтобы было сложнее его поменять
- Отчёт по нагрузке должен предоставляться по спец запросу load_limit
- Число бесплатных MPS
- Стоймость MPS всверх бесплатных
- Число бесплатных топиков с агрегацией (нужно придумать метрику)
- Стоймость за один топик с агрегацией (нужно придумать метрику)
- Токен доступа для скрапера генерит Админ инстанса
Федерация
TODO: требуется крепкая проработка
- Федеративный хаб Repo, c поиском по Unit на мультиинстансе
- Внедрение activity pub
- Система взаимодействия между инстансами
- Проработать activity pub
- Проработать bridge y emqx, до разных инстансов
- Белые и чёрные листы доменов для создания repo
- Импорт экспорт всех данных учётной записи по запросу Пользователя
- Добавить кнопку обновления env от pepeunit, для будущей возможности переноса Unit на другие инстансы
- Проработать условия автоматического бана внешних инстансов
- Нужен бан топиков от внешних инстансов, по условиям (выдумать условия)
Видео для документации
- Нужно видео по развёртыванию Pepeunit
- Нужно видео где с 0 на уже развёрнутом инстансе, создаётся готовая система по существующим Repo - от лица Пользователя
- Нужно видео где с 0 на уже развёрнутом инстансе, разработчик Unit последовательно создёт новый Unit с 0 - от лица разработчика Unit