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".

Veja também