All Downloads are FREE. Search and download functionalities are using the official Maven repository.

istofa.brave-impl.2.0.2.source-code.brave-client-servertracer-usage.txt Maven / Gradle / Ivy

@startuml


box "Service 1 - caller" #LightBlue

 participant Service as Service1
 participant ClientLib
 participant ClientTracer
 participant SpanCollector as ClientSpanCollector
end box

box "Service 2 - callee" #LightGreen
  participant Service as Service2
  participant ServerTracer
  participant SpanCollector as ServerSpanCollector
end box
autonumber "[000]"

Service1 -> ClientLib : Execute request
ClientLib -> ClientTracer : startNewSpan(requestName)
ClientLib <-- ClientTracer : SpanId
alt returned SpanId == null
  ClientLib -> ClientLib : Add Sampled = false as meta data to request
else returned SpanId != null
  ClientLib -> ClientLib : Add TraceId, SpanId, ParentSpanId,\nSampled = true as meta data to request
end
ClientLib -> ClientTracer : setClientSent()
ClientLib -> Service2 : Execute Request (with trace meta data)
Service2 -> ServerTracer : clearCurrentSpan()
Service2 -> Service2 : Get Span Meta Data as potentially\nsubmitted by client.
alt sampled = false
  Service2 -> ServerTracer : setStateNoTracing()
else traceId != null && spanId != null
  Service2 -> ServerTracer : setStateCurrentTrace(traceId, spanId, parentSpanId, spanName)
else no trace data submitted
  Service2 -> ServerTracer : setStateUnknown(spanName)
end
Service2 -> ServerTracer : setServerReceived()
group Service specific logic
 Service2 -> Service2 : Service logic...
end
Service2 -> ServerTracer : setServerSend()
ServerTracer -> ServerSpanCollector : collect(Span)
Service2 --> ClientLib : Response
ClientLib -> ClientTracer : setClientReceived() 
ClientTracer -> ClientSpanCollector : collect(Span)
Service1 <-- ClientLib : Response

@enduml




© 2015 - 2025 Weber Informatics LLC | Privacy Policy