mirror of
https://github.com/TronoSfera/Law.git
synced 2026-05-18 10:03:45 +03:00
3.4 KiB
3.4 KiB
Performance Tracking
Дата старта: 2026-03-16
Цель
Снизить воспринимаемую задержку при открытии канбана, карточки заявки и чата. Базовая инфраструктура: 4 vCPU / 8 GB RAM / SSD 150 GB.
Текущая гипотеза
- Основная задержка создается не железом, а лишними round-trip между фронтом и backend/chat-service.
- Карточка заявки загружается несколькими параллельными запросами и при live-обновлениях перезагружается целиком.
- Канбан собирается через загрузку большого массива заявок в Python и дальнейшую агрегацию в памяти.
Backlog
| ID | Задача | Статус | Приоритет | Зависимости |
|---|---|---|---|---|
| PERF-01 | Зафиксировать baseline по ключевым endpoint и сценариям | in_progress | P0 | — |
| PERF-02 | Добавить индекс на requests.assigned_lawyer_id |
completed | P0 | — |
| PERF-03 | Убрать full reload карточки заявки при live-обновлениях | planned | P0 | PERF-01 |
| PERF-04 | Собрать единый endpoint карточки заявки | planned | P0 | PERF-01 |
| PERF-05 | Выделить узкие request-scoped endpoints для вложений и счетов | planned | P0 | PERF-04 |
| PERF-06 | Переписать kanban на SQL-first фильтрацию/limit | planned | P0 | PERF-01, PERF-02 |
| PERF-07 | Ограничить initial chat payload и добавить догрузку истории | planned | P1 | PERF-03, PERF-04 |
| PERF-08 | Добавить нужные вспомогательные индексы и повторный profiling | planned | P1 | PERF-01 |
PERF-01
Scope
- Добавить серверные замеры для проблемных endpoint без изменения контрактов.
- Помечать в логах и headers целевые сценарии:
- kanban
- request workspace
- chat messages
- chat live
- status route
- attachments
- invoices
Progress
- 2026-03-16: создан tracking-файл.
- 2026-03-16: в работе точечная инструментализация через существующий HTTP middleware.
- 2026-03-16: добавлены
Server-Timing,X-Perf-Label,X-Perf-Duration-Msдля ключевых endpoint. - 2026-03-16: контейнерный тест
python -m unittest tests.test_http_hardening -vпройден. - 2026-03-16: добавлен ops-скрипт
scripts/ops/perf_baseline.shдля repeatable baseline по admin workspace. - 2026-03-16: baseline еще не снят, потому что локальный контур на
localhost:8081не поднят. - 2026-03-16: выполнен
PERF-02- добавлен индексix_requests_assigned_lawyer_id, миграционный тест пройден.
Дальше
- Поднять локальный контур и выполнить
./scripts/ops/perf_baseline.sh http://localhost:8081. - После снятия baseline перейти к
PERF-06и убиратьbase_query.all()из kanban.