From 4f6eb0452772d467fcfd79e3dbd2ad64807a9fed Mon Sep 17 00:00:00 2001 From: Toshiaki Maki Date: Mon, 28 Jun 2021 17:38:46 +0900 Subject: [PATCH] Set spanId in TracingResponderRSocketProxy (#1986) also respect traceIdHigh and debug flag in TracingMetadata --- .../rsocket/TracingResponderRSocketProxy.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/TracingResponderRSocketProxy.java b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/TracingResponderRSocketProxy.java index 4a1604726..038429143 100644 --- a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/TracingResponderRSocketProxy.java +++ b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/TracingResponderRSocketProxy.java @@ -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()); }