Мониторинг#
В LIM есть несколько методов мониторинга:
- Отправка данных в InfluxDB (включен по умолчанию)
- Экспорт метрик в формате Prometheus через ресурс
/metrics(отключен по умолчанию)
Глобально мониторинг LIM работает аналогично мониторингу LUNA PLATFORM. Исключением являются только отправляемые данные в InfluxDB (см. ниже).
Метрики в формате Prometheus содержат точно такие же данные, как и в LUNA PLATFORM.
См. подробную информацию в разделе "Мониторинг" руководства администратора LUNA PLATFORM.
Отправка данных в InfluxDB#
Отправляемые данные#
Для каждого сервиса типы события мониторинга отличаются. Ниже приведена таблица, отражающая все типы событий для каждого сервиса:
| Сервис | Типы событий |
|---|---|
| Index Manager | все HTTP-запросы, все неудачные HTTP-запросы, построение индекса |
| Indexer | все HTTP-запросы, все неудачные HTTP-запросы |
| Indexed Matcher | все HTTP-запросы, все неудачные HTTP-запросы, перезагрузка индексов, запросы на сравнение (проходят через Redis) |
Каждое событие — это точка временного ряда. Точка представлена с использованием следующих данных:
- тип события (запросы или ошибки)
- отметка времени начала запроса
- теги
- поля
Тег — это индексированные данные в хранилище. Он представлен в виде словаря, где
- keys — имена тегов (string),
- values — значения с типами данных string, integer, float
Поле представляет собой неиндексированные данные в хранилище. Оно представлено в виде словаря, где
- keys — имена полей (string),
- values — значения с типами данных string, integer, float
Сохранение данных для серии запросов запускается при каждом HTTP-запросе. Каждая точка содержит данные о соответствующем запросе (время выполнения и т.д.).
- теги
| Имя тега | Описание |
|---|---|
| service | сервис, "lim-indexer", "lim-manager" или "lim-matcher" |
| route | объединение метода запроса и ресурса запроса (GET:/version) |
| status_code | HTTP статус код ответа |
- поля
| Имя поля | Описание |
|---|---|
| request_id | идентификатор запроса |
| execution_time | время выполнения запроса |
Сохранение данных для серии ошибок запускается при сбое HTTP-запроса. Каждая точка содержит error_code ошибки.
- теги
| Имя тега | Описание |
|---|---|
| service | сервис, "lim-indexer", "lim-manager" или "lim-matcher" |
| route | объединение метода запроса и ресурса запроса (GET:/version) |
| status_code | HTTP статус код ответа |
| error_code | код ошибки LIM |
- поля
| Имя поля | Описание |
|---|---|
| request_id | идентификатор запроса |
Сохранение данных для серии построения индекса запускается при ошибке во время построения индекса.
- теги
| Имя тега | Описание |
|---|---|
| service | сервис, "lim-manager" или "lim-matcher" |
| socket_address | адрес сервиса в формате <host>:<port> |
| stage | "build_index" (построить индекс), "load_index" (загрузить индекс) или "drop_index" (удалить индекс) |
| label | метка для сравнения индекса (идентификатор списка) |
| error_code | код ошибки LIM (0 — запрос выполнен успешно) |
- поля
| Имя поля | Описание |
|---|---|
| task_id | идентификатор задачи на индексирование |
| pending | время, проведенное во внутренней очереди (сек) |
| duration | время построения индекса (сек) |
| generation | unix-время генерации индекса |
Сохранение данных для серии сравнения запускается при выполнении сравнения.
- теги
| Имя тега | Описание |
|---|---|
| service | сервис, всегда "lim-matcher" |
| socket_address | адрес сервиса в формате <host>:<port> |
| label | метка для сравнения индекса (идентификатор списка) |
| error_code | код ошибки LIM (0 — запрос выполнен успешно) |
- поля
| Имя поля | Описание |
|---|---|
| request_id | идентификатор запроса |
| index_id | идентификатор индекса |
| execution_time | время выполнения запроса на сравнение (сек) |