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