|
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 |
|---|
|
|
| README.md |
|---|
| docs/health-endpoint-spec.md 0 → 100644 |
|---|
| panel/backend/.env.example |
|---|
| panel/backend/app/api/services.py 0 → 100644 |
|---|
| panel/backend/app/config.py |
|---|
| panel/backend/app/main.py |
|---|
| panel/backend/app/schema.sql |
|---|
| panel/backend/app/services_probe.py 0 → 100644 |
|---|
| panel/frontend/src/App.vue |
|---|
| panel/frontend/src/api.js |
|---|
| panel/frontend/src/i18n/messages/en.js |
|---|
| panel/frontend/src/i18n/messages/ru.js |
|---|
| panel/frontend/src/i18n/messages/uk.js |
|---|
| panel/frontend/src/pages/ServicesPage.vue 0 → 100644 |
|---|
| panel/frontend/src/router.js |
|---|