Public Status Page
Публичная страница статуса без аутентификации. Можно встроить на свой сайт через iframe или показывать badge в README.
Страница /status
Доступна без логина по адресу https://your-domain/status.
Показывает:
- Общий статус всех систем (overall)
- Карточки сервисов с разбивкой SLO по статусам
- Health score в процентах
- Время последнего обновления
Автообновление каждые 30 секунд.
Badge для README
Каждый сервис имеет SVG badge, который можно вставить в README или документацию:
Badge обновляется автоматически (cache 60 секунд).
Цвета:
- Зелёный — healthy
- Оранжевый — at_risk
- Красный — breached
- Серый — no_data / unknown
Embed iframe
На странице /status есть кнопка "Copy iframe snippet" — копирует готовый HTML:
<iframe src="https://your-domain/status" width="100%" height="600" frameborder="0"></iframe>API
GET /api/v1/public/status
Аутентификация: не требуется CORS: разрешён для всех доменов (Access-Control-Allow-Origin: *) Cache: public, max-age=30
Ответ:
{
"generated_at": "2026-10-14T15:00:00Z",
"overall": "healthy",
"services": [
{
"name": "API Service",
"status": "healthy",
"total_slos": 5,
"healthy": 5,
"at_risk": 0,
"breached": 0,
"no_data": 0,
"overall_score": 100.0
}
]
}GET /api/v1/public/badge/{name}.svg
Аутентификация: не требуется Content-Type: image/svg+xmlCache: public, max-age=60
Возвращает SVG в стиле shields.io. Имя сервиса в пути URL-encoded.
Пример: /api/v1/public/badge/Gurushots%20Challenges%20Found.svg
Безопасность
Публичный endpoint отдаёт только агрегированную статистику — названия сервисов и количество SLO по статусам. Не раскрываются:
- PromQL запросы
- Пороги и бюджеты
- Имена SLO
- Внутренние метрики
Если нужно скрыть сервис с публичной страницы — деактивируйте его (soft-delete) или используйте reverse proxy для блокировки /api/v1/public/*.