Проверка готовности (health)
Функция health запускает HTTP endpoint, который показывает готовность компонентов Netgap к обработке запросов.
Назначение
Health endpoint нужен для:
- readiness probe в Kubernetes и других оркестраторах;
- проверки состояния сервиса балансировщиком;
- быстрой диагностики при запуске и обновлении;
- исключения неготового экземпляра из обработки трафика.
Netgap ведет внутренний реестр компонентов. Если все зарегистрированные компоненты готовы, endpoint возвращает 200 OK; если хотя бы один компонент не готов или реестр пуст, возвращается 503 Service Unavailable.
Настройки
Секция observability.health управляет HTTP сервером проверки готовности.
| Поле | Значения | Описание |
|---|---|---|
enabled | true, false | Включает или отключает health endpoint. |
bind_ip | IP-адрес | Интерфейс, на котором слушает HTTP сервер. |
port | Число от 1 до 65535 | Порт HTTP endpoint. При включенном health порт 0 недопустим. |
Примеры конфигурации
Включение endpoint на всех интерфейсах:
observability:
service_name: netgap-gateway
event_targets:
- level: info
target_id: Tech
target_destination: Console
target_args: ""
format: ColorizedANSI
health:
enabled: true
bind_ip: 0.0.0.0
port: 8080
Endpoint только на локальном интерфейсе:
observability:
service_name: netgap-executor
event_targets:
- level: warn
target_id: Tech
target_destination: Console
target_args: ""
format: ColorizedANSI
health:
enabled: true
bind_ip: 127.0.0.1
port: 8081
Пример Kubernetes readiness probe:
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
Результат и доставка
Результат работы функции — HTTP endpoint:
GET /health
Ответ содержит JSON со статусами компонентов. Возможные HTTP-коды:
200 OK— все зарегистрированные компоненты готовы;503 Service Unavailable— сервис еще не готов или один из компонентов сообщил проблему.
Пример ответа при неготовом компоненте:
{
"request_bridge": {
"NotReady": "Initializing"
}
}
Варианты применения
- readiness probe в Kubernetes;
- проверка доступности экземпляра перед включением в балансировку;
- smoke-проверка после деплоя;
- автоматическое исключение неготовых инстансов из production-трафика.