|
fix: история за период не обрезается по свежему краю — прореживание по всему окну
На реальном интервале 30 с окно 24 ч — это 2880 точек, неделя — ~7 тыс., а запрос ограничивался LIMIT'ом по свежему краю: страница сервера просит 1500 точек, поэтому «7 d» показывал последние ~7 часов, а «24 h» — ~12. Сырые сутки вытесняли всю старую историю вместе с дайджестами, и полосы min–max на длинных периодах вообще не доезжали до графика. Теперь `limit` — это «сколько точек вернуть максимум»: в окне читается до FETCH_CAP строк, и если их больше limit, точки прореживаются равномерно по всему периоду (первая — начало запрошенного интервала, последняя — сейчас), а дайджесты выброшенных сливаются в оставшуюся. Прореживание вынесено в общий `app/digest.py` (им же пользуется MCP-тул server_history — у него была та же обрезка на окне 168 ч); в группе остаётся последняя точка, так что свежий край не теряется. Проверено на демо-данных: 7 d отдаёт окно целиком (03.10 → 10.10), час со спайком доезжает как cpu max 97.5 и /data max 88, часы простоя — как n < exp, тултип полосы показывает «23.5–32% · замеров 240/240». |
|---|
|
|
| README.md |
|---|
| panel/backend/app/api/servers.py |
|---|
| panel/backend/app/digest.py 0 → 100644 |
|---|
| panel/backend/app/mcp.py |
|---|