Справочник по конфигурации кластера
В этом разделе описаны опции конфигурации, представленные в Tarantool DB.
- app.roles.slow_log
- app.roles.tracing
- roles.tcf-<worker_or_coordinator>
- config.storage
- roles.crud-<router_or_storage>
- roles.dictionary-<router_or_storage>
- roles.expirationd
Секция app.roles.slow_log задает опции конфигурации журнала медленных запросов.
Пример
Включить запись в журнал медленных запросов. По умолчанию запись будет включена для запросов через модуль CRUD.
Тип: boolean
Значение по умолчанию: false
Максимальное время выполнения запроса в секундах. При превышении этого значения запрос считается медленным и записывается в журнал.
Тип: number
Значение по умолчанию: 0.5
Задать функции, для которых будет включено логирование медленных запросов.
Тип: table
Значение по умолчанию: {}
Секция app.roles.tracing задает опции конфигурации трассировки.
- app.roles.tracing.enabled
- app.roles.tracing.global_sample_rate
- app.roles.tracing.sample_rates
- app.roles.tracing.base_url
- app.roles.tracing.api_method
- app.roles.tracing.report_interval
- app.roles.tracing.spans_limit
Пример
roles_cfg:app.roles.tracing:enabled: trueglobal_sample_rate: 0sample_rates:get_token_api: 2debug_1: 1base_url: 'http://tracing:9411/api/v2/spans'api_method: 'POST'report_interval: 1spans_limit: 1000
Включить трассировку.
Тип: boolean
Значение по умолчанию: false
Глобальный коэффициент частоты трассировки — трассируется каждый N-й вызов функции. Примеры:
10 — трассируется каждый десятый запрос;
1 — трассируются все запросы;
0 — все запросы не трассируются.
Тип: integer
Значение по умолчанию: 0
Коэффициенты частоты трассировки для заданных сегментов (spans). Значение опции — это таблица из пар ключ-значение, где
- ключ — название сегмента;
- значение — частота трассировки для этого сегмента.
Тип: table
Значение по умолчанию: '{}'
Пример:
sample_rates:get_user: 1000get_token: 10000
URL-адрес сервера трассировки, куда отправляются данные трассировки.
Тип: string
Значение по умолчанию: 'http://127.0.0.1:9411/api/v2/spans'
HTTP-метод, используемый для отправки данных трассировки на сервер.
Возможные значения: POST, GET, PUT.
Тип: string
Значение по умолчанию: 'POST'
Интервал в секундах между отправкой на сервер собранных данных о трассировке.
Тип: integer
Значение по умолчанию: 10
Максимальное количество сегментов (span) трассировки, которые могут быть сохранены локально на экземпляре Tarantool перед отправкой во внешнюю систему хранения результатов трассировки.
Тип: integer
Значение по умолчанию: 1000
Секция задает опции конфигурации для технологических ролей roles.tcf-worker и roles.tcf-coordinator.
Опции определяют настройки кластеров, необходимые для взаимодействия с модулем Tarantool Clusters Federation (TCF).
Полный список опций приведен в документации TCF.
Задать конфигурацию кластера можно как через yaml-файл, так и в веб-интерфейсе Tarantool DB на вкладке TCF.
Узнать больше про технологические роли, связанные с TCF: roles.tcf-worker, roles.tcf-coordinator.
Секция config.storage определяет опции конфигурации узла как части централизованного хранилища конфигураций.
Узнать больше: Запуск кластера Tarantool DB как централизованного хранилища конфигураций.
Пример
roles_cfg:config.storage:status_check_interval: 3
Интервал в секундах между проверками состояния сервера в кластере.
Тип: number
Значение по умолчанию: 5
Секция задает опции конфигурации для технологических ролей roles.crud-router и roles.crud-storage.
Опции используются для настройки сбора метрик модуля CRUD.
Узнать больше про роли, связанные с crud: roles.crud-router, roles.crud-storage.
- roles.crud-<router_or_storage>.stats
- roles.crud-<router_or_storage>.stats_driver
- roles.crud-<router_or_storage>.stats_quantiles
- roles.crud-<router_or_storage>.stats_quantile_age_buckets_count
- roles.crud-<router_or_storage>.stats_quantile_max_age_time
- roles.crud-<router_or_storage>.stats_quantile_tolerated_error
Пример
roles_cfg:roles.metrics-export:http:- endpoints:- format: prometheuspath: /metricslisten: 8081groups:routers:replication:failover: manualsharding:roles: [router]roles:- roles.crud-router- roles.metrics-export- roles.dictionary-routerroles_cfg:roles.crud-router:stats: truestats_driver: metricsstats_quantiles: truestats_quantile_tolerated_error: 0.001stats_quantile_age_buckets_count: 5stats_quantile_max_age_time: 180
Включить сбор метрик модуля CRUD.
По умолчанию сбор метрик отключен, так как их работа снижает производительность:
- на 3-10% — при использовании локального драйвера;
- 5-15% — при использовании драйвера метрик. Этот драйвер используется по умолчанию;
- до 20% — при использовании метрик, которые содержат квантили.
Тип: boolean
Значение по умолчанию: false
Задать драйвер для хранения собранных метрик CRUD. Возможные значения:
local— использовать локальный драйвер;metrics-- использовать драйвер метрик.
Тип: string
Значение по умолчанию: 'metrics'
Включить квантили метрик.
Опция crud.stats_quantiles работает только в том случае, если в опции roles.crud-<router_or_storage>.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Тип: boolean
Значение по умолчанию: false
Количество сегментов квантилей summary.
Увеличение значения сглаживает скользящее окно, но потребляет дополнительную память и CPU.
Опция crud.stats_quantile_age_buckets_count работает только в том случае, если в опции roles.crud-<router_or_storage>.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Тип: number
Значение по умолчанию: 2
Время жизни сегмента (bucket) в секундах.
Опция crud.stats_quantile_max_age_time работает только в том случае, если в опции roles.crud-<router_or_storage>.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Меньший срок жизни сегмента приводит к меньшему временному окну для квантилей, при этом
больше ресурсов CPU используется на ротацию сегментов.
Если у вашего приложения низкая частота запросов, увеличьте значение, чтобы уменьшить количество пробелов -nan в значениях квантилей.
Узнать больше про опцию crud.stats_quantile_max_age_time можно в документации Tarantool в
разделе Мониторинг.
Тип: number
Значение по умолчанию: 60
Задать допустимую погрешность квантиля.
Опция stats_quantile_tolerated_error работает только в том случае, если в опции roles.crud-<router_or_storage>.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Узнать больше про опцию crud.stats_quantile_tolerated_error можно в документации Tarantool в
разделе Мониторинг.
Тип: number
Значение по умолчанию: 0.001
Секция задает опции конфигурации для технологических ролей roles.dictionary-router и roles.dictionary-storage.
Опции используются для настройки работы словарей.
- roles.dictionary-<router_or_storage>.batch_size
- roles.dictionary-<router_or_storage>.worker_sleep_in_second
- roles.dictionary-<router_or_storage>.update_instances_list_period
- roles.dictionary-<router_or_storage>.connect_timeout
Пример
roles_cfg:roles.dictionary-router:update_instances_list_period: 300roles.dictionary-storage:batch_size: 1000worker_sleep_in_second: 60update_instances_list_period: 300connect_timeout: 3
Размер пакета для обмена между узлами в байтах.
Тип: number
Значение по умолчанию: 400
Интервал в секундах между опросами соседнего экземпляра на наличие новых данных.
Тип: number
Значение по умолчанию: 3
Доступно с версии 2.0.0.
Частота обновления списка узлов в секундах. Модуль хранит список узлов и отслеживает нездоровые узлы. При обнаружении нездорового узла модуль прекращает попытки связаться с ним до следующего обновления списка. Опция также позволяет отслеживать появление новых узлов в кластере.
Тип: number
Значение по умолчанию: 60
Доступно с версии 2.0.0.
Время ожидания установки соединения в секундах.
Тип: number
Значение по умолчанию: Неограниченно
Секция roles.expirationd задает опции конфигурации устаревания данных.
- roles.expirationd.<name>
Название задачи по устареванию данных. Обязательный параметр.
Тип: string
Без пользовательской логики
roles_cfg:roles.expirationd:task_name1:space: messagesoptions:args:lifetime_in_seconds: 15time_create_field: dt
Здесь:
task_name1— название задачи по устареванию данных;space— название спейса, по которому идет поиск устаревших кортежей;options.args— дополнительные опции конфигурации:lifetime_in_seconds— время жизни кортежа в секундах;time_create_field— название поля, по которому проверяется время жизни кортежа.
Узнать больше: Автоматическое удаление устаревших кортежей из спейса.
С пользовательской логикой
roles_cfg:roles.expirationd:messages_expiration:space: messagesis_expired: messages_is_tuple_expiredis_master_only: trueoptions:tuples_per_iteration: 100iterate_with: messages_iterate_withprocess_expired_tuple: messages_process_expired_tupleargs:seconds: 5
Здесь:
messages_expiration— название задачи по устареванию данных;space— название спейса, по которому идет поиск устаревших кортежей;is_expired— название функции, которая получает кортеж и проверяет его срок жизни;is_master_only— экспирация запущена только на master-узлах;options— дополнительные опции конфигурации:tuples_per_iteration— количество кортежей, которое проверяется за одну итерацию;iterate_with— название функции, которая получает и обрабатывает устаревшие кортежи;process_expired_tuple— название функции, возвращающей итератор для обхода спейса;args— аргументы, доступные в функцияхmessage_iterate_withиmessage_process_expired_tuple,seconds-- время жизни кортежа. А также для поиска устаревших данных по умолчанию. В этом случае используются следующие поля:lifetime_in_seconds- время жизни кортежа в секундах;time_create_field- поле "время создания" для оценки времени жизни.
Узнать больше: Проверка устаревших кортежей в спейсе с помощью пользовательских функций.
Название функции, которая получает кортеж и проверяет его срок жизни.
Функция возвращает true, если время жизни кортежа истекло.
Обязательный параметр.
Тип: function
Запустить работу с устаревающими кортежами только на master-узлах.
Тип: boolean
Значение по умолчанию: false
Название спейса или идентификатор спейса, по которому идет поиск устаревших кортежей. Обязательный параметр.
Тип: string или number
Дополнительные опции конфигурации.
Тип: table
Значение по умолчанию: {}
Дополнительные аргументы конфигурации. Доступные аргументы:
-
seconds(number) — время жизни кортежа в секундах. Аргумент нужен, когда для обработки устаревших кортежей используются пользовательские функции. Аргумент передается в опции roles.expirationd.<name>.options.iterate_with и roles.expirationd.<name>.options.process_expired_tuple в качестве дополнительного контекста; -
lifetime_in_seconds(number) — время жизни кортежа в секундах. Доступно с версии 1.2.0. Аргумент используется для настройки автоматического удаления устаревших кортежей; -
time_create_field(string) — название поля, по которому проверяется время жизни кортежа. Доступно с версии 1.2.0. Аргумент используется для настройки автоматического удаления устаревших кортежей. Указанное поле может быть нескольких типов. Функция определения текущего времени зависит от типа данных в опцииtime_create_field:Тип
time_create_fieldТекущее время
число
clock.time()целое число
clock.time()беззнаковое
clock.time()datetime
datetime.now()
Тип: table
Значение по умолчанию: {}
Название функции, возвращающей итератор для обхода спейса. Если опция не указана, используется функция по умолчанию. Функция по умолчанию возвращает такой итератор, какой возвращается в index_object:pairs().
Тип: function
Название функции, которая получает и обрабатывает устаревшие кортежи.
Если опция не указана (или указан nil), устаревшие кортежи удаляются.
Тип: function
Количество кортежей, которое проверяется за одну итерацию.
В значении опции допустимо передавать номер FFI, например 1LL или 1ULL.
Тип: number
Значение по умолчанию: 1024