fix(traffic): проверить сбор трафика через HTTP и PostgreSQL
This commit is contained in:
1 parent
4527e5537c
commit
737e04a6a9
12 files changed
+1257
-13
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Сервер161.104.46.222: завершён локальный блок12.5.174 — воспроизведены ложные нули трафика; сумма scheduler snapshot выдаётся только при достоверных дельтах всех учитываемых интерфейсов, invalid counters отклоняются. Профиль traffic-rate (включая actual collector body) и backend production build прошли. Стенд остаётся ux-ping173; SQL/HTTP-приёмка producer и deployment нового guard — следующий175. Этап12.5 открыт.
|
||||
Сервер161.104.46.222: завершён12.5.175 — real HTTP client/traffic producer→owned PostgreSQL→scheduler JSON→source confidence,9 SQL controls passed за9358ms; ownDB/role/container удалены. Backend ux-traffic175 deployed/healthy, frontend ux-ping173;1024 compiled parity,2live UI/3API passed. Следующий176 — проверить compound RouterOS RTT duration parser по сохранённым native payloads; legacy counters/history freshness остаются открыты. Этап12.5 открыт.
|
||||
|
||||
| Параметр | Проверенное состояние |
|
||||
| --- | --- |
|
||||
@@ -14,7 +14,7 @@
|
||||
| PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed |
|
||||
| Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data |
|
||||
| Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска |
|
||||
| Образы приложения | mmapp-test/backend:ux-ping173 и mmapp-test/frontend:ux-ping173; запущены |
|
||||
| Образы приложения | mmapp-test/backend:ux-traffic175 и mmapp-test/frontend:ux-ping173; запущены |
|
||||
|
||||
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
|
||||
|
||||
@@ -1716,3 +1716,15 @@ Existing snapshot types уже имеют optional суммы; source decoder174
|
||||
npm --prefix backend run test:traffic-rate прошёл: существующие формулы/observations, новый counter/rate/source guard и actual collectTrafficOnce body через AST с in-memory DB/HTTP boundaries (first wave, zero, reset, malformed/no insert, excluded interfaces). Извлечение исполняет исходный collector, не копию алгоритма; это не реальный PostgreSQL или RouterOS. npm --prefix backend run build прошёл. [Local check](ux-ui/acceptance/traffic-confidence-local-2026-10-12.json) фиксирует хеши изменённых source и границы доказательства. Full regression/remote deployment не выполнялись, поскольку изменён только локальный producer guard.
|
||||
|
||||
Следующий175: real MikrotikClient loopback HTTP→owned PostgreSQL→scheduler resultJson→source decoder с first-wave/next-zero/reset/malformed/mixed-interface controls; проверить очистку своих объектов и исключение stale historical samples. После profile acceptance собрать backend и развернуть guard на тестовом стенде; frontend ux-ping173 совместим с absent optional totals. Сейчас оба сервиса удалённого стенда всё ещё ux-ping173, native Ping4/4 подтверждён в173; новое исправление там ещё не доступно. Пароли, конфигурация CHR и тестовый runtime этим блоком не менялись. Локальный коммит без push.
|
||||
|
||||
## 12.5.175 — SQL/HTTP-приёмка достоверности трафика и развёртывание (2026-10-12)
|
||||
|
||||
Producer guard174 проверен через настоящий MikrotikClient к loopback HTTP simulator, actual collectTrafficOnce, PostgreSQL18.6 и buildSignalSnapshotFromCollectors. Девять SQL controls: first wave без суммы/со stored valid counters; следующая genuine zero; reset без суммы; malformed123bad и missing counter дают ok=false/no insert; новый второй интерфейс не даёт частичную сумму; следующая полная zero wave; положительная скорость; disabled server без outbound HTTP. Каждая актуальная wave сохраняется в scheduler_runs и проходит реальный source reader. Fixture clock не задерживает тест: в своей базе сохраняется только последняя baseline wave и сдвигается её время на30s. Это не проверка длинной historical continuity/retention и не физический RouterOS counter reset.
|
||||
|
||||
Профиль test:traffic-rate дополнен тестом traffic-observation-sql.test.ts. Локально SQL явно skipped без own database; удалённый Node22/PG18.6 профиль прошёл9358ms без SQL skip. База mm_accept_166_1791803283546 принадлежала временному LOGIN без SUPERUSER/CREATEDB/CREATEROLE/BYPASSRLS. Актуальные production DB/JWT secrets не копировались. Тестовые rows убраны finally, база/роль/container удалены trap и отсутствие DB/role проверено каталогами; остались только3 основные контейнера. [SQL](ux-ui/acceptance/traffic-confidence-sql-2026-10-12.json).
|
||||
|
||||
Production backend build прошёл локально и на Debian; [1024 compiled artifacts](ux-ui/acceptance/traffic-confidence-compiled-2026-10-12.json) совпали SHA256 с локальными, different/missing0. Backend ux-traffic175/version1.0.0-test.traffic175 развёрнут; frontend ux-ping173 сохранён и совместим с optional sums. До сборки исправлена строка Docker base, которую ошибочно заменила blanket tag substitution; неисправный Dockerfile не собирался и не выпускался. В.env менялся только BACKEND_IMAGE_TAG, rollback tag ux-ping173 сохранён без копии секретного env. [Runtime](ux-ui/acceptance/traffic-confidence-runtime-2026-10-12.json): verified imageIds, backend healthy/frontend running.
|
||||
|
||||
[Read-only live smoke](ux-ui/acceptance/traffic-confidence-deployed-2026-10-12.json): /traffic1440/320, traffic servers200/no pageerrors/no overflow; /servers,/traffic/servers,/scheduler/runs?jobKey=traffic200. Это проверка доступности/совместимости UI, не доказательство доставки Telegram или возникновения всех edge cases в main DB. Нет manual scheduler run/config/password/message writes; автоматический scheduler остаётся штатным. Пароли CHR не менялись; native Ping4/4 в обе стороны подтверждён ранее в173, здесь повторно не заявлен.
|
||||
|
||||
Следующий176 — inspect native compound durations53ms561us и parseFloat prefix fallback в Ping parser; положительные source payloads уже сохранены в173, не требуются новые сетевые сущности для первоначального доказательства. Legacy invalid traffic counters/raw-rate consumers, history freshness/failed attempt barriers, interface identity/config changes, scale/multiple backend и внешние интеграции остаются условиями12.5. Не считать guard174–175 полной приёмкой трафика. Локальный коммит без push.
|
||||
Reference in new issue
Block a user