Справочник по конфигурации¶
В этом разделе описаны опции конфигурации, представленные в Tarantool DB.
cluster_federation¶
Секция cluster_federation задает опции конфигурации кластеров, необходимые для взаимодействия с модулем Tarantool Clusters Federation (TCF).
Полный список опций для секции cluster_federation приведен в
документации TCF.
Задать конфигурацию кластера можно как через yaml-файл, так и в веб-интерфейсе Tarantool DB на вкладке TCF.
Узнать больше про технологические роли, связанные с TCF: tcf-worker, tcf-coordinator, tcf-api.
crud¶
Секция crud задает опции конфигурации для технологической роли crud.
Опции используются для настройки сбора метрик модуля CRUD.
Узнать больше про роль crud: crud-router, crud-storage.
crud.stats¶
Включить сбор метрик модуля CRUD.
По умолчанию сбор метрик отключен, так как их работа снижает производительность:
- на 3-10% – при использовании локального драйвера; 
- 5-15% – при использовании драйвера метрик. Этот драйвер используется по умолчанию; 
- до 20% – при использовании метрик, которые содержат квантили. 
Тип: boolean
Значение по умолчанию: false
Пример конфигурации¶
stats: true
stats_driver: metrics
stats_quantiles: false
stats_quantile_tolerated_error: 0.001
stats_quantile_age_buckets_count: 5
stats_quantile_max_age_time: 180
crud.stats_driver¶
Задать драйвер для хранения собранных метрик CRUD. Возможные значения:
- local– использовать локальный драйвер;
- metrics– использовать драйвер метрик.
Тип: string
Значение по умолчанию: ‘metrics’
Примечание
Включенный сбор метрик CRUD снижает производительность:
- на 3-10% – при использовании локального драйвера; 
- 5-15% – при использовании драйвера метрик. Этот драйвер используется по умолчанию. 
crud.stats_quantiles¶
Включить квантили метрик.
Опция crud.stats_quantiles работает только в том случае, если в опции crud.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Примечание
Вычисление квантилей снижает производительность на величину до 10%.
Тип: boolean
Значение по умолчанию: false
crud.stats_quantile_age_buckets_count¶
Количество сегментов квантилей summary.
Увеличение значения сглаживает скользящее окно, но потребляет дополнительную память и CPU.
Опция crud.stats_quantile_age_buckets_count работает только в том случае, если в опции crud.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Тип: number
Значение по умолчанию: 2
crud.stats_quantile_max_age_time¶
Время жизни сегмента (bucket) в секундах.
Опция crud.stats_quantile_max_age_time работает только в том случае, если в опции crud.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Меньший срок жизни сегмента приводит к меньшему временному окну для квантилей, при этом
больше ресурсов CPU используется на ротацию сегментов.
Если у вашего приложения низкая частота запросов, увеличьте значение, чтобы уменьшить количество пробелов -nan в значениях квантилей.
Узнать больше про опцию crud.stats_quantile_max_age_time можно в документации Tarantool в
разделе Мониторинг.
Тип: number
Значение по умолчанию: 60
crud.stats_quantile_tolerated_error¶
Задать допустимую погрешность квантиля.
Опция stats_quantile_tolerated_error работает только в том случае, если в опции crud.stats_driver задан драйвер метрик (crud.stats_driver = 'metrics').
Узнать больше про опцию crud.stats_quantile_tolerated_error можно в документации Tarantool в
разделе Мониторинг.
Тип: number
Значение по умолчанию: 0.001
dictionary¶
Секция dictionary задает опции конфигурации словарей.
dictionary.batchsize¶
Размер пакета для обмена между узлами в байтах.
Тип: number
Значение по умолчанию: 400
dictionary.logging¶
Включить логирование действий со словарями.
Тип: boolean
Значение по умолчанию: false
dictionary.worker_sleep_in_second¶
Интервал в секундах между опросами соседнего экземпляра на наличие новых данных.
Тип: number
Значение по умолчанию: 3
expirationd¶
Секция expirationd задает опции конфигурации устаревания данных.
expirationd.<name>¶
Название задачи по устареванию данных. Обязательный параметр.
Тип: string
Пример конфигурации¶
Без пользовательской логики
expirationd:
  task_name1:
    space: test
    options:
      args:
        lifetime_in_seconds: 15
        time_create_field: dt
Здесь:
- task_name1– название задачи по устареванию данных;- space– название спейса, по которому идет поиск устаревших кортежей;
- options.args– дополнительные опции конфигурации:- lifetime_in_seconds– время жизни кортежа в секундах;
- time_create_field– название поля, по которому проверяется время жизни кортежа.
 
 
Узнать больше: Автоматическое удаление устаревших кортежей из спейса.
С пользовательской логикой
expirationd:
  messages_expiration:
    space: messages
    is_expired: messages_is_tuple_expired
    is_master_only: true
    options:
      tuples_per_iteration: 100
      iterate_with: messages_iterate_with
      process_expired_tuple: messages_process_expired_tuple
      args:
        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– время жизни кортежа.
 
 
Узнать больше: Проверка устаревших кортежей в спейсе с помощью пользовательских функций.
expirationd.<name>.is_expired¶
Название функции, которая получает кортеж и проверяет его срок жизни.
Функция возвращает true, если время жизни кортежа истекло.
Обязательный параметр.
Тип: function
expirationd.<name>.is_master_only¶
Запустить работу с устаревающими кортежами только на master-узлах.
Тип: boolean
Значение по умолчанию: false
expirationd.<name>.space¶
Название спейса или идентификатор спейса, по которому идет поиск устаревших кортежей. Обязательный параметр.
Тип: string или number
expirationd.<name>.options¶
Дополнительные опции конфигурации.
Тип: table
Значение по умолчанию: {}
expirationd.<name>.options.args¶
Дополнительные аргументы конфигурации. Доступные аргументы:
- seconds(- number) – время жизни кортежа в секундах. Аргумент нужен, когда для обработки устаревших кортежей используются пользовательские функции. Аргумент передается в опции expirationd.<name>.options.iterate_with и expirationd.<name>.options.process_expired_tuple в качестве дополнительного контекста;
- lifetime_in_seconds(- number) – время жизни кортежа в секундах. Доступно с версии 1.2.0. Аргумент используется для настройки автоматического удаления устаревших кортежей;
- time_create_field(- string) – название поля, по которому проверяется время жизни кортежа. Доступно с версии 1.2.0. Аргумент используется для настройки автоматического удаления устаревших кортежей. Указанное поле может быть нескольких типов. Функция определения текущего времени зависит от типа данных в опции- time_create_field:
| Тип  | Текущее время | 
|---|---|
| число | 
 | 
| целое число | 
 | 
| беззнаковое | 
 | 
| datetime | 
 | 
Тип: table Значение по умолчанию: {}
expirationd.<name>.options.iterate_with¶
Название функции, возвращающей итератор для обхода спейса. Если опция не указана, используется функция по умолчанию. Функция по умолчанию возвращает такой итератор, какой возвращается в index_object:pairs().
Тип: function
expirationd.<name>.options.process_expired_tuple¶
Название функции, которая получает и обрабатывает устаревшие кортежи.
Если опция не указана (или указан nil), устаревшие кортежи удаляются.
Тип: function
expirationd.<name>.options.tuples_per_iteration¶
Количество кортежей, которое проверяется за одну итерацию.
В значении опции допустимо передавать номер FFI, например 1LL или 1ULL.
Тип: number
Значение по умолчанию: 1024
slow_log¶
Секция slow_log задает опции конфигурации журнала медленных запросов.
slow_log.enable¶
Включить запись в журнал медленных запросов. По умолчанию запись будет включена для запросов через модуль CRUD.
Тип: boolean
Значение по умолчанию: false
slow_log.threshold¶
Максимальное время выполнения запроса в секундах. При превышении этого значения запрос считается медленным и записывается в журнал.
Тип: number
Значение по умолчанию: 0.5
slow_log.namespaces¶
Задать функции, для которых будет включено логирование медленных запросов.
Тип: table
Значение по умолчанию: {}
Пример:
slow_log:
  enable: true
  threshold: 0.01
  namespaces:
    - "app"
tracing¶
Секция tracing задает опции конфигурации трассировки.
tracing.global_sample_rate¶
Глобальный коэффициент частоты трассировки – трассируется каждый N-й вызов функции. Примеры:
10 – трассируется каждый десятый запрос;
1 – трассируются все запросы;
0 – все запросы не трассируются.
Примечание
Рекомендуется установить такое значение параметра, чтобы трассировалось не более одного запроса в секунду.
Например, при нагрузке 1000 RPS, если функция start_span()
вызывается при каждом обращении к базе, установите значение global_sample_rate = 1000.
Тип: integer
Значение по умолчанию: 0
tracing.sample_rates¶
Коэффициенты частоты трассировки для заданных сегментов (spans). Значение опции – это таблица из пар ключ-значение, где
- ключ – название сегмента; 
- значение – частота трассировки для этого сегмента. 
Примечание
Рекомендуется установить такое значение параметра, чтобы трассировалось не более одного запроса в секунду.
Например, при нагрузке 1000 RPS у конкретной функции, в которой вызывается функция start_span() с названием get_user(),
установите в tracing.sample_rates ключ-значение {get_user: 1000}.
Тип: table
Значение по умолчанию: ‘{}’
Пример:
  sample_rates:
    get_user: 1000
    get_token: 10000
tracing.base_url¶
URL-адрес сервера трассировки, куда отправляются данные трассировки.
Тип: string
Значение по умолчанию: ‘http://127.0.0.1:9411/api/v2/spans’
tracing.api_method¶
HTTP-метод, используемый для отправки данных трассировки на сервер.
Возможные значения: POST, GET, PUT.
Тип: string
Значение по умолчанию: ‘POST’
tracing.report_interval¶
Интервал в секундах между отправкой на сервер собранных данных о трассировке.
Тип: integer
Значение по умолчанию: 10
tracing.spans_limit¶
Максимальное количество сегментов (span) трассировки, которые могут быть сохранены локально на экземпляре Tarantool перед отправкой во внешнюю систему хранения результатов трассировки.
Тип: integer
Значение по умолчанию: 1000