bot: раздел «Алерты» — рассылка всем, восстановление, список #15

Closed
opened 2026-10-12 19:34:31 +03:00 by Eleboba · 1 comment
Owner

Описание

Требования AL-1…AL-7 из SPEC §4.4, ARCHITECTURE §2.9, ADR-012.

Желаемый результат

  • Детекторы: краш, OOM, цикл рестартов, unhealthy, перегрузка, отказ после деплоя, CD упал, мало места на хосте, внешняя зависимость недоступна, 🛡 атака через агента (только админам).
  • Рассылка всем активным участникам: тип, сервис, время, хвост лога, кнопки «📜 Логи», «🩺 Статус».
  • Дедупликация kind+service со счётчиком, «✅ восстановлено» ответом на исходный алерт.
  • «📋 Список алертов»: активные + 7 дней, по 10 на страницу.

Подзадачи

  • config/alerts.yaml
  • app/alerts/detectors.py — чистые функции событие → AlertEvent
  • app/alerts/service.py — дедупликация, восстановление
  • app/alerts/broadcast.py — очередь отправки с лимитом Telegram
  • app/bot/routers/alerts.py — список и карточки
  • Тесты на инъектируемых часах

Анализ

Затрагиваемые файлы

Файл Что меняется
app/alerts/ новый пакет
app/bot/routers/alerts.py новый
config/alerts.yaml новый

Ограничения и риски

Шторм: бесконечный рестарт = один алерт со счётчиком. Заблокировавший бота участник — не ошибка рассылки.

Как проверить

examples/crash → один алерт всем + «восстановлено»; examples/cpu_hog → 🔥 через ~1 мин; список показывает оба.


Лог выполнения

2026-10-13

  • Задача переписана под SPEC v2 (QR-доступ, меню из 4 разделов, командная модель — ADR-011…013).
  • Зависит также от #11 (падение CD).
## Описание Требования AL-1…AL-7 из [SPEC](https://gitea.24studbank.ru/HSE/tgit/src/branch/dev/docs/SPEC.md) §4.4, [ARCHITECTURE](https://gitea.24studbank.ru/HSE/tgit/src/branch/dev/docs/ARCHITECTURE.md) §2.9, ADR-012. ## Желаемый результат - Детекторы: краш, OOM, цикл рестартов, unhealthy, перегрузка, отказ после деплоя, CD упал, мало места на хосте, внешняя зависимость недоступна, 🛡 атака через агента (только админам). - Рассылка всем активным участникам: тип, сервис, время, хвост лога, кнопки «📜 Логи», «🩺 Статус». - Дедупликация `kind+service` со счётчиком, «✅ восстановлено» ответом на исходный алерт. - «📋 Список алертов»: активные + 7 дней, по 10 на страницу. ## Подзадачи - [ ] `config/alerts.yaml` - [ ] `app/alerts/detectors.py` — чистые функции событие → AlertEvent - [ ] `app/alerts/service.py` — дедупликация, восстановление - [ ] `app/alerts/broadcast.py` — очередь отправки с лимитом Telegram - [ ] `app/bot/routers/alerts.py` — список и карточки - [ ] Тесты на инъектируемых часах ## Анализ ### Затрагиваемые файлы | Файл | Что меняется | |------|--------------| | `app/alerts/` | новый пакет | | `app/bot/routers/alerts.py` | новый | | `config/alerts.yaml` | новый | ### Ограничения и риски Шторм: бесконечный рестарт = один алерт со счётчиком. Заблокировавший бота участник — не ошибка рассылки. ## Как проверить `examples/crash` → один алерт всем + «восстановлено»; `examples/cpu_hog` → 🔥 через ~1 мин; список показывает оба. --- ## Лог выполнения ### 2026-10-13 - Задача переписана под SPEC v2 (QR-доступ, меню из 4 разделов, командная модель — ADR-011…013). - Зависит также от #11 (падение CD).
Eleboba added this to the M2 · CD и мониторинг milestone 2026-10-12 19:34:31 +03:00
Eleboba added the botfeaturesize/1 labels 2026-10-12 19:34:31 +03:00
Eleboba self-assigned this 2026-10-12 19:34:31 +03:00
Eleboba changed title from bot: алерты о падениях и перегрузке to bot: раздел «Алерты» — рассылка всем, восстановление, список 2026-10-13 22:53:57 +03:00
Eleboba added a new dependency 2026-10-13 22:57:09 +03:00
Author
Owner

Смержено в dev через PR #47 — закрываю.

Смержено в `dev` через PR #47 — закрываю.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: HSE/tgit#15