fix(alerts): исключить неподтверждённые проблемы из журнала мониторинга
This commit is contained in:
1 parent
d3f9a120e6
commit
ca23284486
20 files changed
+1384
-98
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Тестовый сервер UX/UI — 2026-10-10
|
||||
|
||||
Сервер161.104.46.222: завершён12.5.171 — объяснение неоднозначных/отключённых целей в оповещениях, ReUI Alert без vendor changes. Backend profile/42E2E/ownPG16+metadata/compiled1012/source434+518 passed;2 live warning screens/scoped axe passed. Frontend сначала проверен с old API, затем оба ux-targets171 развёрнуты;backend/PG healthy. DB/role/container удалены. Следующий172 — исправить синтезированный журнал monitoring: raw sample readers ещё игнорируют disabled/freshness и Date needs positive SQL verification;12.5 открыт.
|
||||
Сервер161.104.46.222: завершён12.5.172 — monitoring history использует общие confirmed collector facts внутри readonly transaction; disabled/stale/error/unknown не поднимают raw samples. Старый backend реально показывал disabled/hour-old sample; Date schema failure не воспроизведён. OwnSQL26+GRE8/stability/source437/compiled1020/build/4E2E/2live UI passed; own DB/roles removed. Backend ux-history172 healthy, frontend ux-targets171 прежний, оба CHR selected API200. Следующий173 — различить ошибку выполнения Ping и измеренные потери: producer catch пишет100%, guard пока принимает ok=false down;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-targets171 и mmapp-test/frontend:ux-targets171; запущены |
|
||||
| Образы приложения | mmapp-test/backend:ux-history172 и mmapp-test/frontend:ux-targets171; запущены |
|
||||
|
||||
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
|
||||
|
||||
@@ -1661,3 +1661,21 @@ Owned Node22/PostgreSQL18.6 profile passed19540ms:16 source SQL cases плюс
|
||||
Протоколы: [SQL/cleanup](ux-ui/acceptance/alert-target-issues-sql-2026-10-12.json), [source](ux-ui/acceptance/alert-target-issues-source-2026-10-12.json), [compiled](ux-ui/acceptance/alert-target-issues-compiled-2026-10-12.json), [interop](ux-ui/acceptance/alert-target-issues-interop-2026-10-12.json), [runtime](ux-ui/acceptance/alert-target-issues-runtime-2026-10-12.json), [live UI](ux-ui/acceptance/alert-target-issues-deployed-2026-10-12.json).
|
||||
|
||||
Следующий172 — отдельная обнаруженная ветка: синтезированный monitoring history в alerts-service читает raw latest samples, пока не применяет enabled/freshness/current-error guards170 и требует проверки реального PG timestamp→public string на positive sample. Source finding не является уже выполненным исправлением или доказанной runtime ошибкой. Stable-ID target migration, отсутствующие цели удалённых правил, physical WAN/scale/multi-instance и реальные Telegram/Portal/client OS остаются отдельными условиями12.5. Локальный коммит без push.
|
||||
|
||||
## 12.5.172 — подтверждённые текущие проблемы в журнале мониторинга (2026-10-12)
|
||||
|
||||
Внешнее воспроизведение выполнено на compiled ux-targets171 с own PostgreSQL/ограниченной ролью. Прежний overview принимал положительный raw sample и корректно выдавал timestamp string: гипотеза Date/schema failure НЕ подтвердилась. Первая baseline попытка ожидала ошибку и завершилась assertion failure; её результат сохранён, own fixture/DB/role очищены. Уточнённый baseline прошёл: один и тот же live offline оставался после disabled server, disabled resources source и замены sampledAt на часовой давности. Это положительное независимое подтверждение реального disabled/freshness дефекта прежней ветки, не вывод только из кода.
|
||||
|
||||
Raw uptime_resource_samples/uptime_probe_samples больше не используются как самостоятельное доказательство текущей проблемы в alerts history. Выделен readCollectorSourceSnapshot с injectable reader: engine и history используют одинаковые current/config/identity/unknown/freshness/per-probe guards170. History читает source facts через параметризованный Drizzle adapter в том же repeatable read/read only transaction overview, без глобального pool обхода snapshot. Значения запроса остаются bound params, raw fragments — только внутренние постоянные SELECTs. Network GRE/BGP не перечитывается для этой ветки. Конфигурация, источники и lookup metadata остаются readonly; defaults/credentials не загружаются.
|
||||
|
||||
monitoringHistory строит live problems только по подтверждённым offline/degraded серверам и down/warn пробам. Заголовок сервера «Доступность сервера» соответствует объединению resource/REST, а не выдуманному outage CPU. Live sent=false/source=live сохраняются: это мониторинг, не факт отправки Telegram. ISO timestamps нормализованы, IDs используют stable hash вместо удаления символов, чтобы разные подписи не схлопывались. Persisted source=db receipts и sent flags сохранены независимо от доступности устройства/источника. Сортировка merged history сравнивает реальное время, чтобы новый ISO live timestamp и PostgreSQL datetime string не нарушали порядок. Это совместимость форматов; старый overview уже корректно проходил schema, driver Date bug не заявляется.
|
||||
|
||||
Source/build/unit/ESLint прошли. Локальные alert-engine и12 скриптов alerts-telegram прошли в доступных ветках; локальный PG skipped.4 профильных reader/history E2E прошли11.0s; frontend исходники не менялись, полную UI/context regression не повторяли. Owned Node22/PG18.6 сначала выполнил25 source/history cases; после дополнительного chronology control финальный профиль26 cases прошёл19421ms, плюс GRE/BGP8 и actual stability, PG skips0.9 history scenarios поверх прежних16 и1 chronology: positive live+synthetic stored receipt, disabled device/source, stale JSON при свежих raw tables, newer NULL/error, empty/current absence, same-name server ambiguity с независимой пробой, changed probe identity, raw-only samples без подтверждения; более новая DB receipt стоит первой при смешанном формате дат. Синтетический receipt в own DB не доказывает реальную Telegram доставку.
|
||||
|
||||
Все известные baseline/fix DB names и роли удалены, test containers отсутствуют. Один SCP connection закрылся после задержки authentication; финальный bundle повторно передан и verified перед deploy. Промежуточные25-case результаты не выданы за финальные26. Source437 и1020 emitted files совпали SHA256/LF normalization. Production build прошёл; backend ux-history172/version1.0.0-test.history172 развёрнут, imageId совпал с проверенным, backend/PG healthy, frontend ux-targets171 прежний. Existing.env изменён только backend tag, rollback ux-targets171 сохранён без копии secret env. Running containers3.
|
||||
|
||||
Первый live GET совпал с закрытием старого контейнера и получил socket closed; после healthy повтор прошёл.3 API reads (/api/alerts и оба selected CHR BGP)200,2 /alerts UI1440/320 accepted/overflow/pageerrors0, configuration warning171 сохранён. Source engine facts и UI journal теперь согласованы в проверенных границах. Raw-only/manual measurements без подтверждённого scheduler snapshot не синтезируются как текущие alerts; их provenance требует отдельного профиля. Native configs/пароли не менялись, RouterOS writes/messages0. Реальная packet loss/current state для scope устройств в этом блоке не создавалась: собственные SQL fixtures, не новый data-plane тест.
|
||||
|
||||
Протоколы: [first baseline hypothesis](ux-ui/acceptance/monitoring-history-baseline-attempt-2026-10-12.json), [real baseline](ux-ui/acceptance/monitoring-history-baseline-2026-10-12.json), [SQL26/cleanup](ux-ui/acceptance/monitoring-history-sql-2026-10-12.json), [source437](ux-ui/acceptance/monitoring-history-source-2026-10-12.json), [compiled1020](ux-ui/acceptance/monitoring-history-compiled-2026-10-12.json), [runtime](ux-ui/acceptance/monitoring-history-runtime-2026-10-12.json), [API/UI](ux-ui/acceptance/monitoring-history-deployed-2026-10-12.json).
|
||||
|
||||
Следующий173 — source finding: collectPingProbesOnce/pingProbesNow catch превращает ошибку REST-команды в lossPct100/down; decoder пока разрешает ok=false/down/null/100. Это не независимое доказательство потери пакетов. Проверить и исправить подтверждение измерений/empty payload; не объявлять legacy raw UI stats и manual provenance уже исправленными. Также остаются unconfirmed/missing target diagnostics, stable-ID migration, scale/multi-instance/physical WAN и внешние Telegram/Portal/client OS.12.5 открыт. Локальный коммит без push.
|
||||
Reference in new issue
Block a user