Set spanId in TracingResponderRSocketProxy (#1986)
also respect traceIdHigh and debug flag in TracingMetadata
This commit is contained in:
@@ -152,8 +152,16 @@ public class TracingResponderRSocketProxy extends RSocketProxy {
|
||||
if (extract != null) {
|
||||
TracingMetadata tracingMetadata = TracingMetadataCodec.decode(extract);
|
||||
Span.Builder builder = this.tracer.spanBuilder();
|
||||
String traceId = EncodingUtils.fromLong(tracingMetadata.traceId());
|
||||
long traceIdHigh = tracingMetadata.traceIdHigh();
|
||||
if (traceIdHigh != 0L) {
|
||||
// ExtendedTraceId
|
||||
traceId = EncodingUtils.fromLong(traceIdHigh) + traceId;
|
||||
}
|
||||
TraceContext.Builder parentBuilder = this.tracer.traceContextBuilder()
|
||||
.sampled(tracingMetadata.isSampled()).traceId(EncodingUtils.fromLong(tracingMetadata.traceId()))
|
||||
.sampled(tracingMetadata.isDebug() || tracingMetadata.isSampled())
|
||||
.traceId(traceId)
|
||||
.spanId(EncodingUtils.fromLong(tracingMetadata.spanId()))
|
||||
.parentId(EncodingUtils.fromLong(tracingMetadata.parentId()));
|
||||
return builder.setParent(parentBuilder.build());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user