Документация Accelera

Healthchecks

Введение

Каждый модуль системы Accelera имеет механизм проверки готовности (readiness) и работоспособности (liveness).

Проверка готовности (readiness)
Выполняются для определения готовности приложения к работе/приему задач. Проверяется доступность основных компонент.

Проверка работоспособности (liveness)
Выполняется во время работы приложения чтобы определить, работает ли приложение и убедиться, что оно не находится в состоянии, когда контейнер все еще работает, но приложение не может функционировать. Проверяется доступность основных компонент, наличие доступов к конечным узлам и тд.

Настройка

Для активации healthcheck интерфейса необходимо указать переменную среды ENABLE_METRICS=true.

Параметр активирует REST интерфейс для запроса heatlcheck. Номер порта по умолчанию для каждого модуля - 3010. Если вам нужно указать собственный порт задайте его в переменной среды METRICS_PORT.

Исключением является модуль flows_frontend, его healthcheck доступен по тому же адресу, где и основное API (переменная PORT).

Интерфейс

Каждый модуль имеет REST-api для получения информации о готовности/доступности системы.

Исключением является модуль flows_frontend, описание его реализации - ниже.

Модули обрабатывают следующие endpoint:

{
  "status": "UP",
  "checks": [
    {
      "name": "Operational DB availability",
      "state": "UP",
      "data": {
        "reason": ""
      }
    }
  ]
}
{
  "status": "UP",
  "checks": [
    {
      "name": "Operational DB connection alive",
      "state": "UP",
      "data": {
        "reason": ""
      }
    }
  ]
}
  • Health endpoint: http://hostname:3010/health Комплексная проверка, включающая в себя как readiness так и liveness пробы. Пример ответа:
{
  "status": "UP",
  "checks": [
    {
      "name": "Operational DB availability",
      "state": "UP",
      "data": {
        "reason": ""
      }
    },
    {
      "name": "Operational DB connection alive",
      "state": "UP",
      "data": {
        "reason": ""
      }
    }
  ]
}

Набор проверок индивидуален для каждого модуля и перечислен в таблице ниже.

Проверки в модулях

flows_backoffice

readiness пробы

Название проверкиОписание
Operational DB availabilityДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Analytics DB availabilityДоступность аналитической БД (PostgreSQL или Clickhouse). Успешность проверки - выполнение без ошибок запроса select 1
Redis availabilityДоступность Redis. Успешность проверки - установка соединения с Redis.
PingCheck GET:localhost:3002/pingГотовность API принимать запросы клиентов. Успешность проверки - отправка ping запроса на endpoint http://localhost:3005/ping.

liveness пробы

Название проверкиОписание
Operational DB connection aliveДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Analytics DB connection aliveДоступность аналитической БД (PostgreSQL или Clickhouse). Успешность проверки - выполнение без ошибок запроса select 1
Redis connection aliveДоступность Redis. Успешность проверки - запрос ping в redis выполнен без ошибок.
PingCheck GET:localhost:3002/pingAPI доступно для подключений. Успешность проверки - отправка ping запроса на endpoint http://localhost:3005/ping.

bulk_worker

readiness пробы

Название проверкиОписание
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Analytics DB availabilityДоступность аналитической БД (PostgreSQL или Clickhouse). Успешность проверки - выполнение без ошибок запроса select 1
Data Schema readyПроверка успешного существования/инициализации таблиц. Успешная проверка - таблицы существуют/инициализированы.
FS readyДоступность файловой системы контейнера для создания временных файлов. Успешность проверки - создание файла по необходимому пути и его удаление.

liveness пробы

Название проверкиОписание
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Analytics DB connection aliveДоступность аналитической БД (PostgreSQL или Clickhouse). Успешность проверки - выполнение без ошибок запроса select 1

flows_frontend

Данный модуль - единственный, который имеет одну проверку и на readiness и на liveness, по сути давая понять, что веб-сервер внутри контейнера жив и работоспособен.

пробы

GET /health
Response:
200 OK {"status":"UP"}

flows_timers

readiness пробы

Название проверкиОписание
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Operational DB availabilityДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Data Schema readyПроверка успешного существования/инициализации таблицы для таймеров. Успешная проверка - таблица существует/инициализирована.

liveness пробы

Название проверкиОписание
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Operational DB connection aliveДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1

flows_actions

readiness пробы

Название проверкиОписание
Operational DB availabilityДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Redis availabilityДоступность Redis. Успешность проверки - установка соединения с Redis.

liveness пробы

Название проверкиОписание
Operational DB connection aliveДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Redis connection aliveДоступность Redis. Успешность проверки - запрос ping в redis выполнен без ошибок.

flows_engine

readiness пробы

Название проверкиОписание
Operational DB availabilityДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Redis availabilityДоступность Redis. Успешность проверки - установка соединения с Redis.

liveness пробы

Название проверкиОписание
Operational DB connection aliveДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Redis connection aliveДоступность Redis. Успешность проверки - запрос ping в redis выполнен без ошибок.

flows_segments

readiness пробы

Название проверкиОписание
Operational DB availabilityДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Source DB availabilityДоступность БД-источника. Успешность проверки - выполнение без ошибок запроса select 1 (может быть изменен в зависимости от драйвера подключения).
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Redis availabilityДоступность Redis. Успешность проверки - установка соединения с Redis.

liveness пробы

Название проверкиОписание
Operational DB connection aliveДоступность операционной БД PostgreSQL. Успешность проверки - выполнение без ошибок запроса select 1
Source DB connection aliveДоступность БД-источника. Успешность проверки - выполнение без ошибок запроса select 1 (может быть изменен в зависимости от драйвера подключения).
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Redis connection aliveДоступность Redis. Успешность проверки - запрос ping в redis выполнен без ошибок.

sql_adapter

readiness пробы

Название проверкиОписание
Source DB availabilityДоступность БД-источника. Успешность проверки - выполнение без ошибок запроса select 1 (может быть изменен в зависимости от драйвера подключения).
Broker availabilityДоступность брокера RabbitMQ. Успешность проверки - установка соединения с брокером.
Redis availabilityДоступность Redis. Успешность проверки - установка соединения с Redis.

liveness пробы

Название проверкиОписание
Source DB connection aliveДоступность БД-источника. Успешность проверки - выполнение без ошибок запроса select 1 (может быть изменен в зависимости от драйвера подключения).
Broker connection aliveДоступность брокера RabbitMQ. Не было событий ошибки/блокировки канала.
Redis connection aliveДоступность Redis. Успешность проверки - запрос ping в redis выполнен без ошибок.

На этой странице