|
23 | 23 | import io.micrometer.tracing.handler.TracingObservationHandler;
|
24 | 24 | import io.micrometer.tracing.internal.EncodingUtils;
|
25 | 25 | import io.micrometer.tracing.propagation.Propagator;
|
| 26 | +import io.netty.buffer.ByteBufAllocator; |
26 | 27 | import io.netty.buffer.CompositeByteBuf;
|
27 | 28 | import io.rsocket.Payload;
|
| 29 | +import io.rsocket.metadata.CompositeMetadataCodec; |
28 | 30 | import io.rsocket.metadata.TracingMetadataCodec;
|
29 |
| -import java.util.HashSet; |
| 31 | +import io.rsocket.metadata.WellKnownMimeType; |
30 | 32 | import org.slf4j.Logger;
|
31 | 33 | import org.slf4j.LoggerFactory;
|
32 | 34 |
|
| 35 | +import java.util.HashSet; |
| 36 | + |
33 | 37 | public class RSocketRequesterTracingObservationHandler
|
34 | 38 | implements TracingObservationHandler<RSocketContext> {
|
35 | 39 | private static final Logger log =
|
@@ -115,17 +119,22 @@ private void injectDefaultZipkinRSocketHeaders(
|
115 | 119 | long[] spanId = EncodingUtils.fromString(traceContext.spanId());
|
116 | 120 | long[] parentSpanId = EncodingUtils.fromString(traceContext.parentId());
|
117 | 121 | boolean isTraceId128Bit = traceIds.length == 2;
|
| 122 | + final ByteBufAllocator allocator = newMetadata.alloc(); |
118 | 123 | if (isTraceId128Bit) {
|
119 |
| - TracingMetadataCodec.encode128( |
120 |
| - newMetadata.alloc(), |
| 124 | + CompositeMetadataCodec.encodeAndAddMetadata(newMetadata, |
| 125 | + allocator, WellKnownMimeType.MESSAGE_RSOCKET_TRACING_ZIPKIN, |
| 126 | + TracingMetadataCodec.encode128( |
| 127 | + allocator, |
121 | 128 | traceIds[0],
|
122 | 129 | traceIds[1],
|
123 | 130 | spanId[0],
|
124 | 131 | EncodingUtils.fromString(traceContext.parentId())[0],
|
125 |
| - flags); |
| 132 | + flags)); |
126 | 133 | } else {
|
127 |
| - TracingMetadataCodec.encode64( |
128 |
| - newMetadata.alloc(), traceIds[0], spanId[0], parentSpanId[0], flags); |
| 134 | + CompositeMetadataCodec.encodeAndAddMetadata(newMetadata, |
| 135 | + allocator, WellKnownMimeType.MESSAGE_RSOCKET_TRACING_ZIPKIN, |
| 136 | + TracingMetadataCodec.encode64( |
| 137 | + allocator, traceIds[0], spanId[0], parentSpanId[0], flags)); |
129 | 138 | }
|
130 | 139 | }
|
131 | 140 | }
|
0 commit comments