FwTrace
Distributed tracing TLPP — segue requisicao por varios servicos. Compativel com OpenTelemetry, Jaeger, Zipkin.
Assinatura: oSpan := FwTrace():startSpan("operacao") / :finish()
Retorna: FwSpan
Distributed tracing permite ver o caminho completo de uma requisicao atraves de servicos. FwTrace implementa contract OpenTelemetry.
@Get("/api/v1/pedido/:id")
function GetPedido(:id)
oSpan := FwTrace():startSpan("get-pedido")
oSpan:setTag("pedido.id", :id)
try
oSub := FwTrace():startSpan("buscar-banco", oSpan)
oDados := U_BuscaBanco(:id)
oSub:finish()
oSub2 := FwTrace():startSpan("buscar-crm", oSpan)
oCrm := U_BuscaCrm(:id)
oSub2:finish()
oSpan:setTag("http.status", 200)
oSpan:finish()
catch e
oSpan:setError(e)
oSpan:finish()
Throw e
endtry
return oDados
Visualizacao
Jaeger ou Zipkin mostram waterfall — voce ve "operacao demorou 2s; banco 1.5s, CRM 500ms".