TDB Documentation portal logo
Помощь
Обновлена 18 сентября 2026 г. в 14:35

Настройка журнала медленных запросов

В этом руководстве описано, как включить технологическую роль slow_log и настроить логирование медленных запросов.

Содержание:

Включение журнала медленных запросов

По умолчанию, запись медленных запросов в журнал отключена. Включить логирование медленных запросов можно с помощью опции конфигурации slow_log.enable. Для включения записи:

  1. Задайте на нужном экземпляре технологическую роль slow_log.

  2. Добавьте секцию slow_log в файл конфигурации (config.yaml):

    slow_log:  enable: true

По умолчанию запись будет включена для запросов через модуль CRUD.

Пример

В спейс data добавлен кортеж с помощью функции из модуля CRUD:

crud.replace("data", {1, box.NULL, {}})

Запись в логе при этом может выглядеть так:

slow_log-tarantool-router-1    | 2023-11-30 14:02:35.599 [12] main/176/main/tarantooldb.app.roles.slow_log I> Function call crud.replace(["data",[1,null,[]]]) was too long: 0.011s

Установка порогового значения

Задать пороговое значение для времени выполнения запроса можно с помощью опции slow_log.threshold. При превышении этого значения запрос будет записан в журнал:

slow_log:  enable: true  threshold: 0.01

По умолчанию, значение threshold равно 0.5.

Добавление функции для логирования

Добавить функции, которые нужно логировать, можно с помощью опции slow_log.namespace. В примере установлено логирование для

  • функций из модуля app (функции из _G['app']);
  • для персистентных функций с префиксом app..
slow_log:  enable: true  threshold: 0.01  namespaces:    - "app"

Полное описание опций конфигурации slow_log приведено в Справочнике по конфигурации).

Пример

При выполнении миграции была создана персистентная функция app.wait_for, которая ждет заданное количество секунд:

box.schema.func.call('app.wait_for', 3)

Запись в логе для такой функции может выглядеть так:

slow_log-tarantool-router-1    | 2023-11-30 14:13:52.738 [12] main/225/main/tarantool I> start wait_for 3slow_log-tarantool-router-1    | 2023-11-30 14:13:55.740 [12] main/225/main/tarantool I> stop wait_for 3slow_log-tarantool-router-1    | 2023-11-30 14:13:55.740 [12] main/225/main/tarantooldb.app.roles.slow_log I> Function call app.wait_for([3]) was too long: 3.002s

При использовании модуля персистентные функции заменяются на версии с логированием времени выполнения. Оригинальные функции сохраняются с префиксом __slow_log_orig_. Для функции app.wait_for будет создана функция __slow_log_orig_app.wait_for. После отключения модуля функция __slow_log_orig_app.wait_for будет удалена.