Prefix baggage key not value when adding it to logback mdc (#8066)

This commit is contained in:
Lauri Tulmin 2023-03-22 14:14:10 +02:00 committed by GitHub
parent 3bb312a2d6
commit eac75a1d0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 9 deletions

View File

@ -0,0 +1,5 @@
# Settings for the Logback MDC instrumentation
| System property | Type | Default | Description |
|---|---|---|---|
| `otel.instrumentation.logback-mdc.add-baggage` | Boolean | `false` | Enable exposing baggage attributes through MDC. |

View File

@ -88,9 +88,8 @@ public class LoggingEventInstrumentation implements TypeInstrumentation {
// (Java 6 related errors are observed) so relying on for loop instead // (Java 6 related errors are observed) so relying on for loop instead
for (Map.Entry<String, BaggageEntry> entry : baggage.asMap().entrySet()) { for (Map.Entry<String, BaggageEntry> entry : baggage.asMap().entrySet()) {
spanContextData.put( spanContextData.put(
entry.getKey(),
// prefix all baggage values to avoid clashes with existing context // prefix all baggage values to avoid clashes with existing context
"baggage." + entry.getValue().getValue()); "baggage." + entry.getKey(), entry.getValue().getValue());
} }
} }

View File

@ -66,9 +66,8 @@ public class OpenTelemetryAppender extends UnsynchronizedAppenderBase<ILoggingEv
baggage.forEach( baggage.forEach(
(key, value) -> (key, value) ->
contextData.put( contextData.put(
key,
// prefix all baggage values to avoid clashes with existing context // prefix all baggage values to avoid clashes with existing context
"baggage." + value.getValue())); "baggage." + key, value.getValue()));
} }
if (eventContext == null) { if (eventContext == null) {

View File

@ -55,13 +55,13 @@ abstract class AbstractLogbackTest extends InstrumentationSpecification {
events[0].getMDCPropertyMap().get("trace_id") == null events[0].getMDCPropertyMap().get("trace_id") == null
events[0].getMDCPropertyMap().get("span_id") == null events[0].getMDCPropertyMap().get("span_id") == null
events[0].getMDCPropertyMap().get("trace_flags") == null events[0].getMDCPropertyMap().get("trace_flags") == null
events[0].getMDCPropertyMap().get("baggage_key") == (expectBaggage() ? "baggage.baggage_value" : null) events[0].getMDCPropertyMap().get("baggage.baggage_key") == (expectBaggage() ? "baggage_value" : null)
events[1].message == "log message 2" events[1].message == "log message 2"
events[1].getMDCPropertyMap().get("trace_id") == null events[1].getMDCPropertyMap().get("trace_id") == null
events[1].getMDCPropertyMap().get("span_id") == null events[1].getMDCPropertyMap().get("span_id") == null
events[1].getMDCPropertyMap().get("trace_flags") == null events[1].getMDCPropertyMap().get("trace_flags") == null
events[1].getMDCPropertyMap().get("baggage_key") == (expectBaggage() ? "baggage.baggage_value" : null) events[1].getMDCPropertyMap().get("baggage.baggage_key") == (expectBaggage() ? "baggage_value" : null)
} }
def "ids when span"() { def "ids when span"() {
@ -86,19 +86,19 @@ abstract class AbstractLogbackTest extends InstrumentationSpecification {
events[0].getMDCPropertyMap().get("trace_id") == span1.spanContext.traceId events[0].getMDCPropertyMap().get("trace_id") == span1.spanContext.traceId
events[0].getMDCPropertyMap().get("span_id") == span1.spanContext.spanId events[0].getMDCPropertyMap().get("span_id") == span1.spanContext.spanId
events[0].getMDCPropertyMap().get("trace_flags") == "01" events[0].getMDCPropertyMap().get("trace_flags") == "01"
events[0].getMDCPropertyMap().get("baggage_key") == (expectBaggage() ? "baggage.baggage_value" : null) events[0].getMDCPropertyMap().get("baggage.baggage_key") == (expectBaggage() ? "baggage_value" : null)
events[1].message == "log message 2" events[1].message == "log message 2"
events[1].getMDCPropertyMap().get("trace_id") == null events[1].getMDCPropertyMap().get("trace_id") == null
events[1].getMDCPropertyMap().get("span_id") == null events[1].getMDCPropertyMap().get("span_id") == null
events[1].getMDCPropertyMap().get("trace_flags") == null events[1].getMDCPropertyMap().get("trace_flags") == null
events[1].getMDCPropertyMap().get("baggage_key") == null events[1].getMDCPropertyMap().get("baggage.baggage_key") == null
events[2].message == "log message 3" events[2].message == "log message 3"
events[2].getMDCPropertyMap().get("trace_id") == span2.spanContext.traceId events[2].getMDCPropertyMap().get("trace_id") == span2.spanContext.traceId
events[2].getMDCPropertyMap().get("span_id") == span2.spanContext.spanId events[2].getMDCPropertyMap().get("span_id") == span2.spanContext.spanId
events[2].getMDCPropertyMap().get("trace_flags") == "01" events[2].getMDCPropertyMap().get("trace_flags") == "01"
events[2].getMDCPropertyMap().get("baggage_key") == (expectBaggage() ? "baggage.baggage_value" : null) events[2].getMDCPropertyMap().get("baggage.baggage_key") == (expectBaggage() ? "baggage_value" : null)
} }
Span runWithSpanAndBaggage(String spanName, Baggage baggage, Closure callback) { Span runWithSpanAndBaggage(String spanName, Baggage baggage, Closure callback) {