Analytics backlog (SAC)
Разработка отложена; задачи для work-plan.md / спринта.
Фаза A — API
| ID |
Задача |
Готово когда |
| analytics-a1 |
GET /api/v1/analytics/series (bucket=hour|day|week|month, from/to) |
JSON series + тесты |
| analytics-a2 |
group_by=severity|type|product, exclude_types=agent.heartbeat |
heartbeat не в общем счётчике |
| analytics-a3 |
Presets 24h / 7d / 30d / 90d |
документация API |
| analytics-a4 |
Dashboard: daily_reports_24h учитывает report.daily.rdp |
✅ test_dashboard |
| analytics-a5 |
Индексы под агрегации |
EXPLAIN без full scan |
Фаза B — UI
| ID |
Задача |
| analytics-b1 |
Страница «Аналитика» + сайдбар |
| analytics-b2 |
Графики: события по дням; failed vs success login |
| analytics-b3 |
Sparklines на «Обзоре» (опционально) |
| analytics-b4 |
Chart.js / аналог в Vite bundle |
Фаза C — отчёты и SOC
| ID |
Задача |
| analytics-c1 |
Тренды из report.daily.* → details.stats |
| analytics-c2 |
KPI: % хостов с отчётом за 25h |
| analytics-c3 |
Problems opened/resolved, MTTR |
| analytics-c4 |
Top source_ip для *.login.failed |
Фаза D — масштаб
| ID |
Задача |
| analytics-d1 |
analytics_daily_rollups + nightly job |
| analytics-d2 |
Экспорт CSV |
| analytics-d3 |
docs/analytics.md (метрики и лимиты retention) |
Приоритет: A1 → B1 → C1 → остальное.