Модуль tracing | Tdb

Версия:

latest

Модуль 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 и строку с описанием ошибки.

Нашли ответ на свой вопрос?
Обратная связь