Ignore legacy keys in MDC. (#1582)
This commit is contained in:
committed by
GitHub
parent
3e8d842de9
commit
ec1ada24b1
@@ -45,15 +45,6 @@ import org.springframework.util.StringUtils;
|
||||
*/
|
||||
final class Slf4jScopeDecorator implements CurrentTraceContext.ScopeDecorator {
|
||||
|
||||
// Backward compatibility for all logging patterns
|
||||
private static final String LEGACY_EXPORTABLE_NAME = "X-Span-Export";
|
||||
|
||||
private static final String LEGACY_PARENT_ID_NAME = "X-B3-ParentSpanId";
|
||||
|
||||
private static final String LEGACY_TRACE_ID_NAME = "X-B3-TraceId";
|
||||
|
||||
private static final String LEGACY_SPAN_ID_NAME = "X-B3-SpanId";
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(Slf4jScopeDecorator.class);
|
||||
|
||||
private final SleuthProperties sleuthProperties;
|
||||
@@ -82,26 +73,18 @@ final class Slf4jScopeDecorator implements CurrentTraceContext.ScopeDecorator {
|
||||
final String previousParentId = MDC.get("parentId");
|
||||
final String previousSpanId = MDC.get("spanId");
|
||||
final String spanExportable = MDC.get("spanExportable");
|
||||
final String legacyPreviousTraceId = MDC.get(LEGACY_TRACE_ID_NAME);
|
||||
final String legacyPreviousParentId = MDC.get(LEGACY_PARENT_ID_NAME);
|
||||
final String legacyPreviousSpanId = MDC.get(LEGACY_SPAN_ID_NAME);
|
||||
final String legacySpanExportable = MDC.get(LEGACY_EXPORTABLE_NAME);
|
||||
final List<AbstractMap.SimpleEntry<String, String>> previousMdc = previousMdc();
|
||||
|
||||
if (currentSpan != null) {
|
||||
String traceIdString = currentSpan.traceIdString();
|
||||
MDC.put("traceId", traceIdString);
|
||||
MDC.put(LEGACY_TRACE_ID_NAME, traceIdString);
|
||||
String parentId = currentSpan.parentId() != null
|
||||
? HexCodec.toLowerHex(currentSpan.parentId()) : null;
|
||||
replace("parentId", parentId);
|
||||
replace(LEGACY_PARENT_ID_NAME, parentId);
|
||||
String spanId = HexCodec.toLowerHex(currentSpan.spanId());
|
||||
MDC.put("spanId", spanId);
|
||||
MDC.put(LEGACY_SPAN_ID_NAME, spanId);
|
||||
String sampled = String.valueOf(currentSpan.sampled());
|
||||
MDC.put("spanExportable", sampled);
|
||||
MDC.put(LEGACY_EXPORTABLE_NAME, sampled);
|
||||
log("Starting scope for span: {}", currentSpan);
|
||||
if (currentSpan.parentId() != null) {
|
||||
if (log.isTraceEnabled()) {
|
||||
@@ -123,10 +106,6 @@ final class Slf4jScopeDecorator implements CurrentTraceContext.ScopeDecorator {
|
||||
MDC.remove("parentId");
|
||||
MDC.remove("spanId");
|
||||
MDC.remove("spanExportable");
|
||||
MDC.remove(LEGACY_TRACE_ID_NAME);
|
||||
MDC.remove(LEGACY_PARENT_ID_NAME);
|
||||
MDC.remove(LEGACY_SPAN_ID_NAME);
|
||||
MDC.remove(LEGACY_EXPORTABLE_NAME);
|
||||
for (String s : whitelistedBaggageKeys()) {
|
||||
MDC.remove(s);
|
||||
}
|
||||
@@ -154,10 +133,6 @@ final class Slf4jScopeDecorator implements CurrentTraceContext.ScopeDecorator {
|
||||
replace("parentId", previousParentId);
|
||||
replace("spanId", previousSpanId);
|
||||
replace("spanExportable", spanExportable);
|
||||
replace(LEGACY_TRACE_ID_NAME, legacyPreviousTraceId);
|
||||
replace(LEGACY_PARENT_ID_NAME, legacyPreviousParentId);
|
||||
replace(LEGACY_SPAN_ID_NAME, legacyPreviousSpanId);
|
||||
replace(LEGACY_EXPORTABLE_NAME, legacySpanExportable);
|
||||
for (AbstractMap.SimpleEntry<String, String> entry : previousMdc) {
|
||||
replace(entry.getKey(), entry.getValue());
|
||||
}
|
||||
|
||||
@@ -64,13 +64,10 @@ public class Slf4JSpanLoggerTest {
|
||||
Scope scope = this.slf4jScopeDecorator.decorateScope(this.span.context(), () -> {
|
||||
});
|
||||
|
||||
assertThat(MDC.get("X-B3-TraceId"))
|
||||
.isEqualTo(this.span.context().traceIdString());
|
||||
assertThat(MDC.get("traceId")).isEqualTo(this.span.context().traceIdString());
|
||||
|
||||
scope.close();
|
||||
|
||||
assertThat(MDC.get("X-B3-TraceId")).isNullOrEmpty();
|
||||
assertThat(MDC.get("traceId")).isNullOrEmpty();
|
||||
}
|
||||
|
||||
@@ -137,18 +134,15 @@ public class Slf4JSpanLoggerTest {
|
||||
|
||||
@Test
|
||||
public void should_remove_entries_from_mdc_from_null_span() throws Exception {
|
||||
MDC.put("X-B3-TraceId", "A");
|
||||
MDC.put("traceId", "A");
|
||||
|
||||
Scope scope = this.slf4jScopeDecorator.decorateScope(null, () -> {
|
||||
});
|
||||
|
||||
assertThat(MDC.get("X-B3-TraceId")).isNullOrEmpty();
|
||||
assertThat(MDC.get("traceId")).isNullOrEmpty();
|
||||
|
||||
scope.close();
|
||||
|
||||
assertThat(MDC.get("X-B3-TraceId")).isEqualTo("A");
|
||||
assertThat(MDC.get("traceId")).isEqualTo("A");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user