Перейти к основному содержимому

Проверка готовности (health)

Функция health запускает HTTP endpoint, который показывает готовность компонентов Netgap к обработке запросов.

Назначение

Health endpoint нужен для:

  • readiness probe в Kubernetes и других оркестраторах;
  • проверки состояния сервиса балансировщиком;
  • быстрой диагностики при запуске и обновлении;
  • исключения неготового экземпляра из обработки трафика.

Netgap ведет внутренний реестр компонентов. Если все зарегистрированные компоненты готовы, endpoint возвращает 200 OK; если хотя бы один компонент не готов или реестр пуст, возвращается 503 Service Unavailable.

Настройки

Секция observability.health управляет HTTP сервером проверки готовности.

ПолеЗначенияОписание
enabledtrue, falseВключает или отключает health endpoint.
bind_ipIP-адресИнтерфейс, на котором слушает 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-трафика.