fix(alerts): исключить переходы между неоднозначными BGP peers

This commit is contained in:
Denozordec committed 2026-10-12 10:27:41 +07:00
1 parent 22b0e8ae8e
commit c557a8c8cb
11 files changed
+1142 -15

No files matched your search

+12 -2
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-10
Сервер161.104.46.222: завершён 12.5.162 — native IPv6 BGP private4-byte AS4200000162/4200000163, as4 capability/local+remote ASN/API/UI подтверждены. Initial/recovery Ping3/3×2/administrative withdrawal135ms (не SLA)/2 real UI/11 projected static collections×2 cleanup/own container removal passed. Runtime ux-bgp161b/ux-bfd158 сохранён. Следующий163 — защита BGP alert collector от дублирующихся legacy serverName:peerName keys;12.5 открыт.
Сервер161.104.46.222: завершён 12.5.163 — duplicate legacy BGP alert keys внутри одного snapshot сохраняют Unknown, не создают переход между разными peers; ambiguous history блокирует угадывание previous state.46 native snapshots replay/alert/outbox profiles/build/988 parity/2 real UI passed; SQL stability явно skipped. Runtime ux-bgp163/ux-bfd158 healthy. Следующий164 — nullable BGP selected counters/AS/timers без UPDATE-as-prefix/default guesses;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-bgp161b и mmapp-test/frontend:ux-bfd158; запущены |
| Образы приложения | mmapp-test/backend:ux-bgp163 и mmapp-test/frontend:ux-bfd158; запущены |
Compose SHA256:3052bd6ab5d9865f97605cebfb5ff27a4410cd3357b81153a65a87fb7c92582f. OptionalBACKEND_IMAGE_TAG позволяетобновлятьbackendотдельно. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
@@ -1524,3 +1524,13 @@ Own connections/instances/routing filters/address-list/IPv6/bridge/GRE удал
Протоколы: [native/as4/withdrawal/recovery/cleanup](ux-ui/acceptance/bgp-four-byte-asn-native-2026-10-12.json), [2 live UI](ux-ui/acceptance/bgp-ipv6-162-live-ui-2026-10-12.json), [ПК](ux-ui/screens/bgp-ipv6-162-1440-2026-10-12.png), [телефон](ux-ui/screens/bgp-ipv6-162-320-2026-10-12.png). Live UI162 использует отдельный файл bgp-ipv6-162-live-ui, протокол160 сохранён отдельно.
Границы: private four-byte ASN между двумя RouterOS, single-path IPv6 внутри IPv4 GRE, не interop со сторонними peers, IPv6 public outer/WAN, scale/physical redundancy. Следующий163 — проверка duplicate legacy alert keys serverName:peerName: два разных устройства с одинаковыми именами не должны создавать ложные state transitions внутри одного snapshot.12.5 открыт.
## 12.5.163 — неоднозначные ключи BGP-оповещений (2026-10-12)
Два CHR в native162 имели одинаковые legacy alert keys CHR:peerName. Раньше второй peer внутри того же snapshot мог стать previous state первого. Collector теперь сначала группирует строки одного run: повторный key становится current Unknown, а ambiguous history не используется для поиска previous known state через разные identities. Даже одинаковые states не доказывают уникальное соответствие configured target конкретному peer. Distinct keys и last-known переходы161 сохранены; stable server/peer ID target migration не выполнена. Для legacy ambiguous targets события подавляются консервативно.
Unit assertions проверили duplicate same/different/unknown states и исторический barrier. Compiled replay46 real native160 snapshot pairs подтвердил одинаковые ключи,46 Unknown/46 suppressed problem/46 suppressed recovery. Это сохранённые RouterOS payloads, не новая native mutation. Alert groups/evaluate и controlled outbox/HTTP/JWT profiles прошли; SQL stability снова skipped из-за отсутствующего PG подключения и не считается pass. Backend build/988 emitted parity passed, ux-bgp163 развёрнут с rollback env; backend/PG healthy, frontend ux-bfd158 сохранён.3 readonly catalog/selected GET и2 live UI1440/320 passed/no errors/overflow после fixture cleanup. Образы/сборка отражают эту delta, полная1481 UI/context regression157 повторно не запускалась.
Протоколы: [replay46](ux-ui/acceptance/bgp-ambiguous-replay-2026-10-12.json), [compiled988](ux-ui/acceptance/bgp-ambiguous-compiled-2026-10-12.json), [deployed API/UI](ux-ui/acceptance/bgp-ambiguous-deployed-2026-10-12.json). ReUI/Frame/base-nova UI primitives сохранены; RouterOS/пароли/объекты не менялись, сообщения не отправлялись.
Следующий164 — strict nullable selected BGP counters/AS/timers: legacy selected API ещё подменяет отсутствующие значения default numbers и UPDATE messages количеством prefixes.12.5 открыт.