Настройка и использование лимитов
Лимиты ограничивают ресурсы Smart Monitor, используемые для обработки запросов.
Настройка пользовательских и ролевых лимитов
Проверка каждого лимита пользователя проходит последовательно. Сначала проверяется его собственный лимит. Если он не указан, проверяются лимиты ролей пользователя. Если у нескольких ролей указан данный лимит, выбирается наиболее расширенный из них. Если у ролей пользователя также не указан лимит, используется базовый лимит.
Лимиты можно настроить через интерфейс, доступный в навигационном меню по пути Параметры системы - Настройки модулей - Лимиты.

В данном разделе Smart Monitor можно настроить базовые лимиты, лимиты для отдельных ролей или пользователей.
Пример настройки
Пользователю назначены следующие лимиты:
| Название | Значение |
|---|---|
max_qsize | 500 |
allowed_commands | sourcestatseval |
Также у этого пользователя имеются роли developer и user. Лимиты для роли developer:
| Название | Значение |
|---|---|
max_search_running_time | 500 |
allowed_commands | sourcestreamstatseventstats |
Лимиты для роли user:
| Название | Значение |
|---|---|
max_qsize | 1000 |
allowed_dt_start | now-3w |
После объединения всех видов лимитов получается следующая конфигурация:
| Название | Значение | Вид лимита |
|---|---|---|
max_qsize | 500 | Персональный |
allowed_dt_start | now-3w | Персональный |
max_search_running_time | 500 | Из роли developer |
allowed_commands | sourcestatsevalstreamstatseventstats | Совокупность персонального лимита и роли developer |
allowed_dt_end | По умолчанию | Базовый |
max_payload_row_count | По умолчанию | Базовый |
max_payload_size | По умолчанию | Базовый |
max_command_ram_usage | По умолчанию | Базовый |
Системные настройки лимитов
Настройки лимитов хранятся в _cluster/settings в словаре sme.core. Ниже представлена таблица с настройками лимитов и их значениями по умолчанию.
| Название | Описание | Значение по умолчанию |
|---|---|---|
enable_limits | Включение/отключение лимитирования. | true |
check_base_limit | Создает индекс с лимитами, если он отсутствует. Создает базовый лимит, если он отсутствует в индексе с лимитами. | true |
limits.index_name | Название индекса, в котором хранятся лимиты. | .sm_sme_limits_user |
max_subsearch_hits_count | Максимальное количество документов, возвращаемых подзапросом. | 50000 |
list_limit | Максимальное количество возвращаемых значений функцией list команды stats. | 100 |
sort_limit | Максимальное количество документов, сортируемое командой sort. | 10000 |
Параметры лимитирования
Лимиты при старте запроса
- допустимый временной интервал:
allowed_dt_startиallowed_dt_end - список доступных команд:
allowed_commands - максимальное количество запрашиваемых данных:
max_qsize - максимальное количество параллельных запросов:
max_parallel_request_count - максимальный объем возвращаемых документов из справочника в байтах:
max_lookup_size - время жизни результата фоновой задачи:
background_result_ttl - суммарный объем на диске для результатов фоновых задач:
background_disk_quota
Параметры max_lookup_size, background_result_ttl и background_disk_quota недоступны для редактирования через интерфейс управления лимитами Smart Monitor.
Для изменения данных параметров необходимо выполнить API-запрос через Консоль разработчика. Пример такого запроса приведен ниже:
POST .sm_sme_limits_user/_update/<id документа>
{
"doc": {
"background_disk_quota": 5000000000,
"background_result_ttl": 86400,
"max_lookup_size": 500000000
}
}
Лимиты во время выполнения запроса
- максимальное время выполнения запроса в секундах:
max_search_running_time - количество документов payload:
max_payload_row_count - размер payload в байтах:
max_payload_size - количество оперативной памяти, выделенной на поток, в байтах:
max_command_ram_usage