OtTracerPropagator: send only 64 bits for trace id (#2578)

This commit is contained in:
Sergei Malafeev 2021-01-27 21:19:52 +08:00 committed by GitHub
parent 32a63fb8e3
commit d1f394e873
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View File

@ -58,7 +58,12 @@ public final class OtTracerPropagator implements TextMapPropagator {
if (!spanContext.isValid()) {
return;
}
setter.set(carrier, TRACE_ID_HEADER, spanContext.getTraceIdAsHexString());
// Lightstep trace id MUST be 64-bits therefore OpenTelemetry trace id is truncated to 64-bits
// by retaining least significant (right-most) bits.
setter.set(
carrier,
TRACE_ID_HEADER,
spanContext.getTraceIdAsHexString().substring(TraceId.getHexLength() / 2));
setter.set(carrier, SPAN_ID_HEADER, spanContext.getSpanIdAsHexString());
setter.set(carrier, SAMPLED_HEADER, String.valueOf(spanContext.isSampled()));
}

View File

@ -27,6 +27,7 @@ class OtTracerPropagatorTest {
private static final TraceState TRACE_STATE_DEFAULT = TraceState.builder().build();
private static final String TRACE_ID = "ff000000000000000000000000000041";
private static final String TRACE_ID_RIGHT_PART = "0000000000000041";
private static final String SHORT_TRACE_ID = "ff00000000000000";
private static final String SHORT_TRACE_ID_FULL = "0000000000000000ff00000000000000";
private static final String SPAN_ID = "ff00000000000041";
@ -80,7 +81,7 @@ class OtTracerPropagatorTest {
Context.current()),
carrier,
setter);
assertThat(carrier).containsEntry(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID);
assertThat(carrier).containsEntry(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID_RIGHT_PART);
assertThat(carrier).containsEntry(OtTracerPropagator.SPAN_ID_HEADER, SPAN_ID);
assertThat(carrier).containsEntry(OtTracerPropagator.SAMPLED_HEADER, "true");
}
@ -94,7 +95,7 @@ class OtTracerPropagatorTest {
Context.current()),
null,
(Setter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
assertThat(carrier).containsEntry(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID);
assertThat(carrier).containsEntry(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID_RIGHT_PART);
assertThat(carrier).containsEntry(OtTracerPropagator.SPAN_ID_HEADER, SPAN_ID);
assertThat(carrier).containsEntry(OtTracerPropagator.SAMPLED_HEADER, "true");
}
@ -108,7 +109,7 @@ class OtTracerPropagatorTest {
Context.current()),
carrier,
setter);
assertThat(carrier).containsEntry(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID);
assertThat(carrier).containsEntry(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID_RIGHT_PART);
assertThat(carrier).containsEntry(OtTracerPropagator.SPAN_ID_HEADER, SPAN_ID);
assertThat(carrier).containsEntry(OtTracerPropagator.SAMPLED_HEADER, "false");
}