Проверка состояния сервисов
Healthcheck показывает, может ли Gramax Enterprise Server принимать запросы и какие его функции работают с ошибками. Используйте health endpoints в Kubernetes, балансировщике или системе мониторинга, чтобы отличить полный отказ сервиса от проблемы отдельного модуля.
Настроить healthcheck
Создайте общий секрет и передайте одинаковое значение в контейнеры Enterprise и портала документации:
HEALTHCHECK_TOKEN={СЕКРЕТНЫЙ_КЛЮЧ}Чтобы Enterprise собирал состояние портала документации, передайте его внутренний адрес в контейнер Enterprise:
DOCPORTAL_SERVICE_URL=http://docportal:3000Если переменная не задана, Enterprise показывает только собственное состояние.
Ограничьте доступ к health endpoints на уровне внутренней сети. Подробные ответы защищены токеном, но probes доступны без авторизации для Kubernetes и балансировщиков.
Health endpoints
/health/services доступен на Enterprise. Остальные endpoints есть у Enterprise и портала документации.
Используйте /health/liveness и /health/readiness. Пути /health/live и /health/ready не входят в контракт GES.
Проверить состояние
Проверьте liveness без токена:
curl https://{ges_url}/health/liveness
Успешный ответ:
{ "status": "healthy" }
Проверьте readiness:
curl https://{ges_url}/health/readiness
Получите подробное состояние Enterprise:
curl \ -H "Authorization: Bearer {СЕКРЕТНЫЙ_КЛЮЧ}" \ https://{ges_url}/health
Получите общий снимок GES:
curl \ -H "Authorization: Bearer {СЕКРЕТНЫЙ_КЛЮЧ}" \ https://{ges_url}/health/services
Enterprise обновляет состояние портала документации в фоне. Проверка выполняется раз в 5 минут с timeout 10 секунд. Снимок старше 15 минут считается устаревшим.
Health endpoints не ожидают завершения фоновых проверок. Сразу после запуска некоторые модули могут вернуть код с окончанием _INITIALIZING. Повторите запрос после завершения первой проверки.
Статусы сервисов
Статус unreachable формирует только Enterprise. Он означает, что сервис не ответил, отклонил токен, вернул ответ неизвестного формата или его health endpoint недоступен. Статус unhealthy означает, что сервис ответил и сам сообщил о критичной ошибке.
Состояния модулей
Подробный ответ содержит объект checks со статусом каждого модуля:
Поле critical показывает, влияет ли отказ модуля на готовность всего сервиса. Поле code содержит стабильный код причины, а checkedAt — время последней проверки.
Пример сокращенного ответа:
{ "status": "degraded", "service": "enterprise", "checks": { "git-proxy": { "state": "enabled", "status": "degraded", "critical": true, "code": "GIT_SERVER_TOKEN_EXPIRING", "checkedAt": "2026-09-01T10:00:00.000Z" }, "postgresql": { "state": "disabled", "critical": false, "checkedAt": "2026-09-01T10:00:00.000Z" } } }
Проверяемые модули
Enterprise проверяет:
Enterprise API, конфигурацию и модуль управления правами доступа.
Лицензию и срок ее действия.
Git Proxy, доступность Git-сервера и срок действия
GIT_SERVER_TOKEN.PostgreSQL, если он включен через
ENTERPRISE_DB_TYPE.Metrics, если для них доступен PostgreSQL.
Портал документации проверяет:
Чтение контента: ошибки реального открытия каталогов и статей.
Auto-pull: запуск и результат последнего обновления контента.
Поиск: доступность настроенного поискового модуля.
Выключенный некритичный модуль не ухудшает общий статус. Например, если PostgreSQL не настроен и переменные ENTERPRISE_DB_* не переданы, postgresql и зависящий от него metrics отображаются как disabled.