in lib/skywalking/span.lua [248:281]
function _M.transform(span)
local spanBuilder = Util.tablepool_fetch("sw_spanBuilder", 0, 32)
spanBuilder.spanId = span.span_id
spanBuilder.parentSpanId = span.parent_span_id
spanBuilder.startTime = span.start_time
spanBuilder.endTime = span.end_time
if #span.refs > 0 then
spanBuilder.refs = Util.tablepool_fetch("sw_spanBuilder_refs", 4, 0)
for _, ref in ipairs(span.refs) do
table.insert(spanBuilder.refs, SegmentRef.transform(ref))
end
end
spanBuilder.operationName = span.operation_name
spanBuilder.peer = span.peer
if span.is_entry then
spanBuilder.spanType = 'Entry'
elseif span.is_exit then
spanBuilder.spanType = 'Exit'
else
spanBuilder.spanType = 'Local'
end
if span.layer ~= spanLayer.NONE then
spanBuilder.spanLayer = span.layer.name
end
spanBuilder.componentId = span.component_id
spanBuilder.isError = span.error_occurred
spanBuilder.tags = span.tags
spanBuilder.logs = span.logs
return spanBuilder
end