B22: прикладное логирование vector.* + администрирование в доках (по образцу РВС)
- backend/logging_setup.py: setup_logging() (stdout INFO + файл /tmp/vector/vector.log,
ротация 5×2 МБ, VectorLOGLEVEL/VectorLOGFILE/VectorLOGDIR), get_logger('vector.*')
- события: vector.analyze (матрасчёт с длительностью), vector.auth (login_ok/failed/
lockout), vector.audit (каждая запись), vector.contour (ok/failed/rejected),
vector.operations (operation_complete), vector.geocode (успех/timeout/ошибка)
- существующие логгеры переведены в namespace vector.* (geo, geo.osm, rules, water, admin)
- README §13а: таблица наблюдаемых событий + правила (без ПДн/секретов)
- SETUP_GUIDE: §15 RPO/RTO + backup≠restore, §16 grep по vector.*, §17 диагностика
по цепочкам (БД, 500, fallback-зоны, вход), §17а чек-лист передачи проекта
- DEPLOY.md: вместо устаревшего дубля — ссылка на актуальные доки + шпаргалка стенда
- тесты: 239 passed
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
ВЕКТОР рассчитывает приоритетные направления поиска пропавшего человека по матмодели: на основании данных о потерявшемся (возраст, диагнозы, физподготовка, транспорт), обстоятельствах потери (время, причина, направление), среде (рельеф, погода, сезон) и точке последней пропажи (ТНП) система строит концентрическую зону вероятного нахождения и подсвечивает приоритетные направления обследования с учётом рельефа из OSM-данных.
|
||||
|
||||
> **Версия документа:** соответствует состоянию репозитория на 9 сентября 2026 г.
|
||||
> **Версия документа:** соответствует состоянию репозитория на 25 сентября 2026 г.
|
||||
> **Репозиторий:** [`Sadmin/vector`](http://192.168.0.106:3000/Sadmin/vector)
|
||||
> **Развёртывание:** см. [SETUP_GUIDE.md](SETUP_GUIDE.md) — пошаговый гайд по развёртыванию на серверах МЧС.
|
||||
|
||||
@@ -351,6 +351,41 @@ SPA на react-scripts (CRA). Роутинг:
|
||||
|
||||
---
|
||||
|
||||
## 13а. Прикладное логирование (B22)
|
||||
|
||||
Единая настройка — `backend/logging_setup.py`, инициализируется один раз при старте
|
||||
(`backend.main::lifespan → setup_logging()`). Все модульные логгеры проекта живут
|
||||
в пространстве имён `vector.*` и пишут в:
|
||||
|
||||
- **stdout** контейнера — уровень INFO (меняется env `VectorLOGLEVEL=debug`);
|
||||
- **файл** `/tmp/vector/vector.log` внутри контейнера — ротация 5×2 МБ (отключается `VectorLOGFILE=0`, каталог `VectorLOGDIR`).
|
||||
|
||||
Формат строки: `время LEVEL vector.<модуль>: сообщение`. Пороги для файла — INFO и выше.
|
||||
|
||||
### Наблюдаемые события
|
||||
|
||||
| Логгер | Событие | Что означает |
|
||||
|--------|---------|--------------|
|
||||
| `vector.app` | `Vector API стартует` / `остановлен` | Жизненный цикл процесса |
|
||||
| `vector.analyze` | `анализ case=… радиус=… срочность=… зон=… время=…мс` | Каждый матрасчёт с длительностью |
|
||||
| `vector.auth` | `login_ok` / `login_failed` / `lockout` | Входы и блокировки (user, счётчик, IP) |
|
||||
| `vector.audit` | `audit <тип> user=… obj=… ip=…` | Каждая запись в audit_events |
|
||||
| `vector.contour` | `contour_send_ok` / `contour_send_failed` / `contour_rejected` | Отправка зон в КОНТУР |
|
||||
| `vector.operations` | `operation_complete op=… исход=…` | Завершение поиска (найден живым/погибшим) |
|
||||
| `vector.admin` | `admin closed case …` | Синхронизация закрытия кейса с операциями |
|
||||
| `vector.geocode` | `geocode q=… результатов=…` / `geocode timeout` | Прокси Nominatim |
|
||||
| `vector.geo` / `vector.geo.osm` | Overpass недоступен, OSM PostGIS недоступен | Состояние геослоя (fallback, breaker) |
|
||||
| `vector.rules` | `Geo/scoring service error` | Отказ расчёта зон → fallback-зоны |
|
||||
| `vector.water` | `geo layer cache write failed` | Ошибки кэша геослоя |
|
||||
|
||||
### Правила
|
||||
|
||||
- ПДн и секреты в логи не пишутся: никаких паролей, JWT, содержимого карточек (только id и агрегаты).
|
||||
- Аудит-события дублируются в БД (`audit_events`) — лог это операционный след, БД — юридический.
|
||||
- Уровень по умолчанию INFO; WARNING/ERROR — для неисправностей. Не логировать на INFO каждый HTTP-запрос (это делает uvicorn access-log).
|
||||
|
||||
---
|
||||
|
||||
## 15. Что готово и что в планах
|
||||
|
||||
### Реализовано
|
||||
@@ -363,9 +398,10 @@ SPA на react-scripts (CRA). Роутинг:
|
||||
- Мультипоиск: операции, статусная машина, дашборд «Активные поиски»
|
||||
- Завершение поиска с внесением исхода, архив завершённых с «прогноз vs факт»
|
||||
- Аудит 90 дней с field-level деталями
|
||||
- Прикладное логирование `vector.*`: события анализа, входов, КОНТУРа, аудита (README §13а)
|
||||
- Интеграция с КОНТУР: отправка зон (контракт B20)
|
||||
- Журнал аудита пользователей: входы, изменения, отправки
|
||||
- 231 автотест (pytest), 5 skipped
|
||||
- 239 автотестов (pytest), 5 skipped
|
||||
|
||||
### В планах
|
||||
|
||||
|
||||
Reference in New Issue
Block a user