0.1.4 • Published 4 years ago

rabbitmq-healthcheck v0.1.4

Weekly downloads
3
License
ISC
Repository
github
Last release
4 years ago

Rabbitmq healthcheck

Информация

Сервис для проверки здоровья rabbitmq.

Оглавление

Установка и использование

пример установки: npm install rabbitmq-healthcheck -g

пример запуска: rabbitmq-healthcheck -c config.toml

Таблица ключей запуска

КлючОписание
--version, -vвывести номер версии приложения
--help, -hвызвать справку по ключам запуска
--config, -cпуть к файлу конфигурации в формате toml или json, (переменная среды: RABBITMQ_HEALTHCHECK_CONFIG_PATH)

Конфигурация

Программа настраивается через файл конфигурации двух форматов TOML или JSON. Так же можно настраивать через переменные среды, которые будут считаться первичными.

Секции файла конфигурации

  • logger - настрока логгера (переменная среды: RABBITMQ_HEALTHCHECK_LOGGER)
  • api - настройка API (переменная среды: RABBITMQ_HEALTHCHECK_API)
  • rabbitmq - настройки подключения к rabbitmq (переменная среды: RABBITMQ_HEALTHCHECK_RABBITMQ)

Пример файла конфигурации config.toml

[logger]                # настройка логгера
    mode = "prod"       # режим (prod или dev или debug)
    enable = true       # активация логгера
    timestamp = "none"  # выводить время лога (none, time или full)
    type = true         # выводить тип лога (true или false)

[api]                                   # настройка API
    enable = true                       # активация API
    listening = "*:3001"                # настройка слушателя
    prefix = "/"                        # префикс
    proxy = false                       # когда поле заголовка true proxy будут доверенным
    subdomain_offset = 2                # смещение от поддомена для игнорирования
    proxy_header = "X-Forwarded-For"    # заголовок IP прокси
    ips_count = 0                       # максимальное количество IP прочитанное из заголовка прокси, по умолчанию 0 (означает бесконечность)
    env = "development"                 # среда для сервера koa
    #keys = []                          # массив подписанных ключей cookie

[rabbitmq]                              # настройки подключения к rabbitmq
    reconnect_interval = 10             # интервал переподключения в секундах
    ping_interval = 5                   # интервал опроса
    host = "guest:guest@host:5672"      # адрес сервера
    v_host = "/"                        # виртуальный хост rabbitmq
    heartbeat = 30                      # сердцебиение
    queue = "_ping"                     # имя очереди

Настройка через переменные среды

Ключи конфигурации можно задать через переменные среды ОС. Имя переменной среды формируется из двух частей, префикса RABBITMQ_HEALTHCHECK_ и имени переменной в верхнем реестре. Если переменная вложена, то это обозначается символом _. Переменные среды имеют высший приоритет.

пример для переменной logger.mode: RABBITMQ_HEALTHCHECK_LOGGER_MODE

Таблица параметров конфигурации

ПараметрТипЗначениеОписание
logger.modeстрокаprodрежим отображения prod, dev или debug
logger.enableлогическийtrueактивация логгера
logger.timestampлогическийfalseвыводить время лога (true или false)
logger.typeлогическийtrueвыводить тип лога (true или false)
api.enableлогическийfalseактивация API (true или false)
api.authлогическийfalseактивация авторизации (true или false)
api.listeningстрока*:3001настройка слушателя, формат <хост>:<порт>
api.prefixстрока/apiпрефикс
api.proxyлогическийfalseкогда поле заголовка true proxy будут доверенным
api.subdomain_offsetчисло2смещение от поддомена для игнорирования
api.proxy_headerстрокаX-Forwarded-Forзаголовок IP прокси
api.ips_countчисло0максимальное количество IP прочитанное из заголовка прокси, по умолчанию 0 (означает бесконечность)
api.envстрокаdevelopmentсреда для сервера koa
api.keysстрока[]массив подписанных ключей cookie
rabbitmq.reconnect_intervalчисло10интервал переподключения в секундах
rabbitmq.ping_intervalчисло5интервал опроса
rabbitmq.hostстрокаguest:guest@host:5672адрес сервера
rabbitmq.v_hostстрока/виртуальный хост rabbitmq
rabbitmq.heartbeatчисло30сердцебиение
rabbitmq.queueстрока_pingимя очереди

API

Сервис предоставляет API, который настраивается в секции файла настройки api. API доступно по протоколу HTTP.

Примеры применения

проверить здоровье сервиса: curl http://localhost:3001/healthcheck получить статус здоровья: curl http://localhost:3001/healthcheck/status

URLМетодКодОписаниеПример ответа
/GET200проверить здоровье сервисаOK
/healthcheckGET200проверить здоровье сервисаOK
/healthcheck/statusGET200получить статус здоровьяпример
/_pingGET200проверить доступность сервераOK

Пример ответа запроса: /healthcheck/status

{
    "healthy": true,
    "work_time": 121331231
    "human_work_time": "1d3s"
}