fix(uptime): показывать реальные наблюдения и пропуски RTT на дашборде

This commit is contained in:
Denozordec committed 2026-10-03 23:42:45 +07:00
1 parent 8f65d1620d
commit 9d3129372b
18 files changed
+169 -203

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
## Актуальная точка продолжения — 2026-10-03
Этап 11Б завершён в границах локальной приёмки (11Б.7); внешний выпуск не проверен. 12.1 принят локально: доступность оболочки/клавиатура/health в описанных сценариях. 12.2.1 принят локально: strict BGP catalog/partial/nullable counters. 12.2.2 принят локально: strict traffic DTO и агрегация без выдуманных точек. 12.2.3 принят локально: observations для server traffic от backend до dashboard. 12.2.4 принят локально: strict servers/probes и unknown server status. Следующий блок12.2.5: наблюдения ping и реальная ось RTT; затем overlay/Internet path, производительность и сквозная регрессия. См. docs/ux-ui-stage-12.md. Внешние ограничения 11Б сохраняются.
Этап 11Б завершён в границах локальной приёмки (11Б.7); внешний выпуск не проверен. 12.1 принят локально: доступность оболочки/клавиатура/health в описанных сценариях. 12.2.1 принят локально: strict BGP catalog/partial/nullable counters. 12.2.2 принят локально: strict traffic DTO и агрегация без выдуманных точек. 12.2.3 принят локально: observations для server traffic от backend до dashboard. 12.2.4 принят локально: strict servers/probes и unknown server status. 12.2.5 принят локально: реальные ping samples/unknown/ось RTT/Recharts. Следующий блок12.2.6: strict GRE/WireGuard/VXLAN и device failures; затем Internet path, производительность и сквозная регрессия. См. docs/ux-ui-stage-12.md. Внешние ограничения 11Б сохраняются.
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
+15
View File
@@ -36,6 +36,21 @@
## 12.2.5 — реальные ping наблюдения и разрывы RTT (2026-10-03)
/uptime/overview совместимо добавляет observations.samples и общие rangeStartAt/rangeEndAt. Сохраняет исходные числовые поля legacy клиентов; metadata содержит реальные отсортированные timestamp/RTT/loss/status без искусственных samples и ограничена концом снимка (поступление нового sample во время чтения не нарушает окно). Дашборд предпочитает наблюдения: legacy/empty становятся unknown/null, измеренный0 остаётся0, реальный down/100% остаётся ошибкой. Malformed/duplicate/unordered/out-of-window samples сохраняют cache. Source freshness показывает фактическое время, неизвестные проверки исключают утверждение «без ошибок» и дают warning/— в KPI; отсутствующий каталог источника не рисует offline.
RTT агрегируется в60 настоящих временных корзин; средний по источнику не дополняется нулями/интерполяцией. Пропуски — null; изолированная точка видима. Нечитаемый на320px SVG заменён установленной композицией ChartContainer/Recharts, как ReUI PRO chart-23 и существующий TrafficRxTxChart; Frame/OpsPanel сохранены. Скорости RX/TX вынесены из заголовка в переносимую строку, перекрытие устранено. Header таблицы «RTT · 1 ч» вместо неверных «60с».
Проверки:40 dashboard/permissions browser прошли после финального chart; дополнительно6 ping сценариев и снимки1440/320.11 unit dashboard (включая sparse axis/unknown/zero/invalid metadata), чистые backend observations assertions, typecheck/ESLint, frontend production/contracts build(34pages), backend/contracts build прошли. ReUI MCP подтвердил chart-23/Chart API; читались установленные исходники, checklist применён; primitives/theme не изменены. Другие uptime страницы продолжают legacy numeric API и этим блоком не переприняты. Реальные PG/RouterOS measurements не тестировались.
| Доработка | Референс | Схема / локальные снимки |
| --- | --- | --- |
| Читаемый RTT с пропусками | [Chart23](https://reui.io/preview/base/chart-23?ref=mcp) | Observations → временные корзины → линии/разрывы/точки; [1440](ux-ui/screens/dashboard-observed-ping-1440.png), [320](ux-ui/screens/dashboard-observed-ping-320.png) |
| Неизвестное состояние в сводке | [Stats12](https://reui.io/preview/base/stats-12?ref=mcp) | Snapshot → known/unknown → KPI/очередь → объект |
Далее12.2.6: strict GRE/WireGuard/VXLAN и device failures на dashboard; затем Internet path и сводная приёмка12.2. Внешние ограничения сохраняются.
## 12.2.4 — строгие каталоги серверов/проб, unknown серверов (2026-10-03)
Servers использует выбранные поля serverReadSchema и строгие id/latency/sessions; probes — обязательные поля, unique id и диапазоны RTT/loss/series/status. Malformed каталоги отклоняются до публикации, сохраняется cache/время источника. Nullable статус сервера отображается как unknown, warning в очереди; offline KPI считает только явно offline, unknown/degraded перечислены отдельно, недоказанное состояние не называется исправным. Sessions обязательны как в реальном DTO; дополнительная WAN информация остаётся совместимой.
+15
View File
@@ -59,3 +59,18 @@
Servers использует выбранные поля serverReadSchema и строгие id/latency/sessions; probes — обязательные поля, unique id и диапазоны RTT/loss/series/status. Malformed каталоги отклоняются до публикации, сохраняется cache/время источника. Nullable статус сервера отображается как unknown, warning в очереди; offline KPI считает только явно offline, unknown/degraded перечислены отдельно, недоказанное состояние не называется исправным. Sessions обязательны как в реальном DTO; дополнительная WAN информация остаётся совместимой.
Проверки:34 dashboard/permissions browser и8 dashboard unit, typecheck/ESLint прошли. Initial failing unknown fixture был дополнен обязательным sessions реального DTO; финальный прогон34 прошёл. ReUI KPI/queue композиция сохранена, изменены только data/copy. Далее12.2.5: реальные ping наблюдения/временная ось; backend сейчас подставляет100%/down/нули при отсутствии samples, этот блок ещё не устранил такие backend подстановки. Затем overlay/Internet path.
## 12.2.5 — реальные ping наблюдения и разрывы RTT (2026-10-03)
/uptime/overview совместимо добавляет observations.samples и общие rangeStartAt/rangeEndAt. Сохраняет исходные числовые поля legacy клиентов; metadata содержит реальные отсортированные timestamp/RTT/loss/status без искусственных samples и ограничена концом снимка (поступление нового sample во время чтения не нарушает окно). Дашборд предпочитает наблюдения: legacy/empty становятся unknown/null, измеренный0 остаётся0, реальный down/100% остаётся ошибкой. Malformed/duplicate/unordered/out-of-window samples сохраняют cache. Source freshness показывает фактическое время, неизвестные проверки исключают утверждение «без ошибок» и дают warning/— в KPI; отсутствующий каталог источника не рисует offline.
RTT агрегируется в60 настоящих временных корзин; средний по источнику не дополняется нулями/интерполяцией. Пропуски — null; изолированная точка видима. Нечитаемый на320px SVG заменён установленной композицией ChartContainer/Recharts, как ReUI PRO chart-23 и существующий TrafficRxTxChart; Frame/OpsPanel сохранены. Скорости RX/TX вынесены из заголовка в переносимую строку, перекрытие устранено. Header таблицы «RTT · 1 ч» вместо неверных «60с».
Проверки:40 dashboard/permissions browser прошли после финального chart; дополнительно6 ping сценариев и снимки1440/320.11 unit dashboard (включая sparse axis/unknown/zero/invalid metadata), чистые backend observations assertions, typecheck/ESLint, frontend production/contracts build(34pages), backend/contracts build прошли. ReUI MCP подтвердил chart-23/Chart API; читались установленные исходники, checklist применён; primitives/theme не изменены. Другие uptime страницы продолжают legacy numeric API и этим блоком не переприняты. Реальные PG/RouterOS measurements не тестировались.
| Доработка | Референс | Схема / локальные снимки |
| --- | --- | --- |
| Читаемый RTT с пропусками | [Chart23](https://reui.io/preview/base/chart-23?ref=mcp) | Observations → временные корзины → линии/разрывы/точки; [1440](ux-ui/screens/dashboard-observed-ping-1440.png), [320](ux-ui/screens/dashboard-observed-ping-320.png) |
| Неизвестное состояние в сводке | [Stats12](https://reui.io/preview/base/stats-12?ref=mcp) | Snapshot → known/unknown → KPI/очередь → объект |
Далее12.2.6: strict GRE/WireGuard/VXLAN и device failures на dashboard; затем Internet path и сводная приёмка12.2. Внешние ограничения сохраняются.
Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB