Расширенная проверка
GET /health/detailed – проверка глубже двух предыдущих. Она смотрит не только на то,
отвечает ли API, но и на то, в порядке ли всё, от чего он зависит.
curl -i https://api.rewio.ru/health/detailedКлюч не обязателен.
Что она проверяет
Четыре вещи, и каждая проверяется по-настоящему, а не по факту «процесс запущен»:
- Хранилище данных – выполняется запрос к базе.
- Кэш – проверяется отклик.
- Фоновая обработка – отвечают ли исполнители задач сбора.
- Регулярные задачи – не замолчала ли работа по расписанию. Это отдельная проверка, потому что незапустившаяся задача не падает и другими способами не ловится.
Состав проверок может меняться: читайте поле status, а не список под ним.
Ответ и коды
| Код | status | Что означает |
|---|---|---|
200 | healthy | Все проверки прошли. |
503 | degraded | Хотя бы одна проверка не прошла. |
Промежуточного состояния нет: одна незелёная проверка сразу даёт 503, чтобы внешний
мониторинг видел отказ, а не 200 с плохим телом внутри.
{
"status": "degraded",
"dependencies": {
"…": { "status": "healthy" },
"…": { "status": "unhealthy" }
}
}В dependencies каждая проверка отмечена healthy или unhealthy. Набор и названия
проверок – наша внутренняя кухня: они меняются вместе с устройством сервиса, и
завязываться на них не стоит. Ориентир один – поле status и код ответа. Текст ошибки в
теле не показывается: он виден только администраторам сервиса.
Для постоянного мониторинга берите /health/read: он дешевле,
отвечает на тот же вопрос «получу ли я сейчас данные» и не зависит от частей сервиса,
которые к выдаче отношения не имеют. Расширенная проверка нужна, когда что-то уже
сломалось и надо понять, насколько.