-
Notifications
You must be signed in to change notification settings - Fork 716
/
Copy pathbrave-client-servertracer-usage.txt
49 lines (43 loc) · 1.6 KB
/
brave-client-servertracer-usage.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@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