TDB Documentation portal logo
Помощь
Обновлена 30 июня 2026 г. в 07:00

Модуль tracing

Модуль tracing используется для трассировки пользовательских функций.

Модуль для этой роли имеет имя app.roles.tracing. Чтобы использовать роль внутри пользовательской функции, выполните require('app.roles.tracing').

Узнать больше о модуле трассировки можно в репозитории tarantool/tracing.

tracing.start_span(context, name, opts)

Инициировать новый сегмент (span) трассировки. Используется для обозначения начала отслеживаемого кода.

Параметры:

  • context — текущий контекст для трассировки запросов:
    • trace_id — идентификатор трассировки, к которой будет принадлежать сегмент;
    • span_id — идентификатор сегмента, который будет использован как идентификатор родительского сегмента;
    • sample — нужно ли трассировать запрос с помощью текущего и дочерних сегментов;
    • baggage — дополнительные данные текущего сегмента трассировки;
  • name (string) — название сегмента трассировки;
  • opts — дополнительные параметры для создания сегмента трассировки:
    • tags — таблица тегов, которые будут добавлены к создаваемому сегменту;
    • start_timestamp — время начала сегмента в микросекундах с начала эпохи.

Возвращает: объект span

Возвращаемый тип: object

Пример

Если контекст трассировки еще не был инициализирован, передайте первым аргументом в start_span() переменную для контекста (ctx), которая содержит пустую таблицу. В последующих вызовах передайте ту же переменную с текущим контекстом трассировки.

local ctx = {}local span_1 = tracing.start_span(ctx, 'test_1')local span_2 = tracing.start_span(ctx, 'test_2')-- ...

Если передается контекст из клиента, создайте таблицу с ключами trace_id, span_id и sample.

local ctx = {    trace_id = 'trace_id',    span_id = 'span_id',    sample = true,}local span_1 = tracing.start_span(ctx, 'test_1')-- ...

tracing.finish(opts)

Завершить отслеживание сегмента кода и сохранить собранную информацию для выбранного объекта span.

Параметры:

  • opts — опции для функции:
    • timestamp — временная метка в микросекундах с начала эпохи, указывающая время завершения сегмента. Если параметр не указан, используется текущее время;
    • error (string) — строка, добавляющая тег ошибки к сегменту.

Возвращает: true , иначе false и строку с описанием ошибки.