feat: health-чекер сервисов — раздел «Сервисы» + спека health-эндпоинтов
...
Панель опрашивает health-URL внешних gnexus-сервисов (GET, параллельно,
каждые GHARD_HEALTH_INTERVAL=30с, таймаут 5с) и показывает их состояние
отдельным разделом: карточки с состоянием/latency/причиной, история
отклика за 24ч (график), retention точек 7 дней.
Прогрессивный минимум интерпретации: 2xx = up; JSON-тело со строковым
status — ok-набор → up, degraded-набор → деградация, незнакомая строка
→ вниз; не-2xx / таймаут / сеть → вниз. Контракт зафиксирован в
docs/health-endpoint-spec.md (минимум + рекомендуемое расширение checks).
- backend: tables services/service_samples, services_probe.py (волны
проб через asyncio.gather, cap тела 64KB), api/services.py (CRUD +
samples, мгновенный замер на POST/PATCH url), config GHARD_HEALTH_*
- frontend: страница /services, api-методы, nav «Сервисы»,
i18n en/uk/ru
Eugene Sukhodolskiy
committed
7 hours ago