Files
ridebus-status/artifacts/expanded-statistics-verification.md
2026-10-13 02:24:39 +03:00

5.3 KiB
Raw Permalink Blame History

Нижняя панель и расширенная статистика

Дата: 13 октября 2026, Europe/Minsk.

Интерфейс

Нижняя панель использует структуру и размеры footer из ridebus-pwa/src/App.tsx и его стилей: текст ridebus, подпись 13px, ссылки 14px, отступы 25px 0 34px; на мобильном экране — 24px 0 20px. Подпись: «Город ближе, когда всё работает.» Действия: «О мониторинге» и «Сайт RideBus». В production вход в демо скрыт; прямой деморежим остаётся явно обозначенным и позволяет вернуться к мониторингу.

Убраны подписи «Реальные проверки» и «Обновляется автоматически». RSS и JSON доступны на странице описания мониторинга. Сохранены микроанимации и поддержка reduced motion.

Добавлены длительность подтверждённых сбоев, длительность самого долгого инцидента, последнее восстановление, среднее время ответа, P95 и сравнение с предыдущим периодом. Статистика доступна для каждого сервиса и в его подробностях. На графике можно выбрать точку; пропуски измерений отображаются явно.

Проверены desktop 1280px, mobile 390px, английский и русский языки, тёмная тема, отсутствие горизонтального переполнения и клавиатурный выбор точек графика. После исправления смены диапазона переход 7 → 90 дней сохраняет выбранное табло и открывает последнюю точку: max=89, value=89. На момент проверки нового диапазона горизонтального переполнения нет.

Скриншоты: desktop, mobile, production footer. На снимках зафиксировано состояние мониторинга до подключения cookie; успешный сценарий сопряжённого табло показан в отдельном отчёте.

Расчёт и проверка

Длительность включает только измеренные интервалы внутри подтверждённых автоматических инцидентов. Пересечения сбоев доступности и сценария объединяются; плановые работы и интервалы без свежих данных исключаются. Ручные сообщения не подменяют измерения. Если полная длительность неизвестна, показывается минимальное измеренное время со знаком ≥ или отсутствие данных.

Для сценариев создана отдельная история измерений. Старые состояния сохранены, исторические измерения задним числом не создаются. Последнее восстановление берётся из фактически записанного завершения автоматического инцидента и не ограничивается выбранным периодом.

В статистику задержек входят успешные измерения; сравнение требует достаточного покрытия обоих периодов. По умолчанию хранится 90 дней: для сравнения двух полных периодов по 90 дней нужно увеличить хранение до 180 дней.

Проверка на временной SQLite с 648 000 измерений (5 сервисов × 90 дней × 60 секунд): сводка 90 дней построена примерно за 2113ms; размер JSON — 96 353 байта. Временная база удалена. Добавлен внутренний кеш на 5 секунд с немедленным сбросом при новых проверках и изменениях через CLI; публичный ответ сохраняет Cache-Control: no-store. Время ответа кеша отдельно не измерялось.

Итоговая сборка успешна. Все 62 теста, включая расчёты статистики и последующее исправление сопряжённого табло, прошли без ошибок и пропусков. Docker-образ не собирался, поскольку daemon недоступен; конфигурация Compose проверена. Внешняя публикация не выполнялась.