From e7f4f7dcdc2e6b307ef403a7e76360a523790b04 Mon Sep 17 00:00:00 2001 From: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Tue, 29 Nov 2022 10:37:31 -0600 Subject: [PATCH] Add toString implementation to various propagator components (#4996) --- .../propagation/W3CBaggagePropagator.java | 5 ++++ .../W3CTraceContextPropagator.java | 5 ++++ .../propagation/W3CBaggagePropagatorTest.java | 5 ++++ .../W3CTraceContextPropagatorTest.java | 5 ++++ .../DefaultContextPropagators.java | 5 ++++ .../propagation/MultiTextMapPropagator.java | 23 +++++++++++-------- .../propagation/NoopTextMapPropagator.java | 5 ++++ .../MultiTextMapPropagatorTest.java | 6 +++++ .../NoopTextMapPropagatorTest.java | 5 ++++ .../current_vs_latest/opentelemetry-api.txt | 7 +++++- ...ntelemetry-extension-trace-propagators.txt | 10 +++++++- .../propagation/PassThroughPropagator.java | 5 ++++ .../PassThroughPropagatorTest.java | 5 ++++ .../trace/propagation/B3Propagator.java | 5 ++++ .../B3PropagatorInjectorMultipleHeaders.java | 5 ++++ .../B3PropagatorInjectorSingleHeader.java | 5 ++++ .../trace/propagation/JaegerPropagator.java | 5 ++++ .../trace/propagation/OtTracePropagator.java | 5 ++++ .../trace/propagation/B3PropagatorTest.java | 8 +++++++ .../propagation/JaegerPropagatorTest.java | 5 ++++ .../propagation/OtTracePropagatorTest.java | 5 ++++ .../opentelemetry/sdk/OpenTelemetrySdk.java | 3 ++- .../sdk/OpenTelemetrySdkTest.java | 6 ++++- 23 files changed, 130 insertions(+), 13 deletions(-) diff --git a/api/all/src/main/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagator.java b/api/all/src/main/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagator.java index 5c1a8b3425f..9701214e506 100644 --- a/api/all/src/main/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagator.java +++ b/api/all/src/main/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagator.java @@ -139,4 +139,9 @@ private static boolean isValidBaggageKey(String name) { private static boolean isValidBaggageValue(String value) { return value != null; } + + @Override + public String toString() { + return "W3CBaggagePropagator"; + } } diff --git a/api/all/src/main/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagator.java b/api/all/src/main/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagator.java index 91414e9412a..efcd2476b2c 100644 --- a/api/all/src/main/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagator.java +++ b/api/all/src/main/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagator.java @@ -213,4 +213,9 @@ private static SpanContext extractContextFromTraceParent(String traceparent) { OtelEncodingUtils.byteFromBase16(firstTraceFlagsChar, secondTraceFlagsChar)); return SpanContext.createFromRemoteParent(traceId, spanId, traceFlags, TraceState.getDefault()); } + + @Override + public String toString() { + return "W3CTraceContextPropagator"; + } } diff --git a/api/all/src/test/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagatorTest.java b/api/all/src/test/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagatorTest.java index 44ba8ecd7bf..3fbf7bf5297 100644 --- a/api/all/src/test/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagatorTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/baggage/propagation/W3CBaggagePropagatorTest.java @@ -473,4 +473,9 @@ void inject_nullSetter() { W3CBaggagePropagator.getInstance().inject(context, carrier, null); assertThat(carrier).isEmpty(); } + + @Test + void toString_Valid() { + assertThat(W3CBaggagePropagator.getInstance().toString()).isEqualTo("W3CBaggagePropagator"); + } } diff --git a/api/all/src/test/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagatorTest.java b/api/all/src/test/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagatorTest.java index b394eb37061..32b90e6277f 100644 --- a/api/all/src/test/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagatorTest.java +++ b/api/all/src/test/java/io/opentelemetry/api/trace/propagation/W3CTraceContextPropagatorTest.java @@ -528,6 +528,11 @@ void extract_nullGetter() { .isSameAs(context); } + @Test + void toString_Valid() { + assertThat(w3cTraceContextPropagator.toString()).isEqualTo("W3CTraceContextPropagator"); + } + // Tests transplanted from the w3c test suite @ParameterizedTest diff --git a/context/src/main/java/io/opentelemetry/context/propagation/DefaultContextPropagators.java b/context/src/main/java/io/opentelemetry/context/propagation/DefaultContextPropagators.java index 28e41ed9893..dd1b8983891 100644 --- a/context/src/main/java/io/opentelemetry/context/propagation/DefaultContextPropagators.java +++ b/context/src/main/java/io/opentelemetry/context/propagation/DefaultContextPropagators.java @@ -33,4 +33,9 @@ public TextMapPropagator getTextMapPropagator() { DefaultContextPropagators(TextMapPropagator textMapPropagator) { this.textMapPropagator = textMapPropagator; } + + @Override + public String toString() { + return "DefaultContextPropagators{textMapPropagator=" + textMapPropagator + "}"; + } } diff --git a/context/src/main/java/io/opentelemetry/context/propagation/MultiTextMapPropagator.java b/context/src/main/java/io/opentelemetry/context/propagation/MultiTextMapPropagator.java index ce2cecb165c..cee960af923 100644 --- a/context/src/main/java/io/opentelemetry/context/propagation/MultiTextMapPropagator.java +++ b/context/src/main/java/io/opentelemetry/context/propagation/MultiTextMapPropagator.java @@ -16,17 +16,17 @@ import javax.annotation.Nullable; final class MultiTextMapPropagator implements TextMapPropagator { - private final TextMapPropagator[] textPropagators; + private final TextMapPropagator[] textMapPropagators; private final Collection allFields; - MultiTextMapPropagator(TextMapPropagator... textPropagators) { - this(Arrays.asList(textPropagators)); + MultiTextMapPropagator(TextMapPropagator... textMapPropagators) { + this(Arrays.asList(textMapPropagators)); } - MultiTextMapPropagator(List textPropagators) { - this.textPropagators = new TextMapPropagator[textPropagators.size()]; - textPropagators.toArray(this.textPropagators); - this.allFields = Collections.unmodifiableList(getAllFields(this.textPropagators)); + MultiTextMapPropagator(List textMapPropagators) { + this.textMapPropagators = new TextMapPropagator[textMapPropagators.size()]; + textMapPropagators.toArray(this.textMapPropagators); + this.allFields = Collections.unmodifiableList(getAllFields(this.textMapPropagators)); } @Override @@ -48,7 +48,7 @@ public void inject(Context context, @Nullable C carrier, TextMapSetter se if (context == null || setter == null) { return; } - for (TextMapPropagator textPropagator : textPropagators) { + for (TextMapPropagator textPropagator : textMapPropagators) { textPropagator.inject(context, carrier, setter); } } @@ -61,9 +61,14 @@ public Context extract(Context context, @Nullable C carrier, TextMapGetter> { INSTANCE; diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-api.txt b/docs/apidiffs/current_vs_latest/opentelemetry-api.txt index df26146497b..f29157f7b32 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-api.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-api.txt @@ -1,2 +1,7 @@ Comparing source compatibility of against -No changes. \ No newline at end of file +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-extension-trace-propagators.txt b/docs/apidiffs/current_vs_latest/opentelemetry-extension-trace-propagators.txt index df26146497b..62ccbdb194c 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-extension-trace-propagators.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-extension-trace-propagators.txt @@ -1,2 +1,10 @@ Comparing source compatibility of against -No changes. \ No newline at end of file +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.extension.trace.propagation.B3Propagator (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.extension.trace.propagation.JaegerPropagator (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() +*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.extension.trace.propagation.OtTracePropagator (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() diff --git a/extensions/incubator/src/main/java/io/opentelemetry/extension/incubator/propagation/PassThroughPropagator.java b/extensions/incubator/src/main/java/io/opentelemetry/extension/incubator/propagation/PassThroughPropagator.java index 64e6e40b1b5..37b41248df5 100644 --- a/extensions/incubator/src/main/java/io/opentelemetry/extension/incubator/propagation/PassThroughPropagator.java +++ b/extensions/incubator/src/main/java/io/opentelemetry/extension/incubator/propagation/PassThroughPropagator.java @@ -99,4 +99,9 @@ public Context extract(Context context, @Nullable C carrier, TextMapGetter Context extract(Context context, @Nullable C carrier, TextMapGetter void inject(Context context, @Nullable C carrier, TextMapSetter se public Collection fields() { return FIELDS; } + + @Override + public String toString() { + return "B3PropagatorInjectorMultipleHeaders"; + } } diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/B3PropagatorInjectorSingleHeader.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/B3PropagatorInjectorSingleHeader.java index ea7df623157..09f5fc67e04 100644 --- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/B3PropagatorInjectorSingleHeader.java +++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/B3PropagatorInjectorSingleHeader.java @@ -67,4 +67,9 @@ public void inject(Context context, @Nullable C carrier, TextMapSetter se public Collection fields() { return FIELDS; } + + @Override + public String toString() { + return "B3PropagatorInjectorSingleHeader"; + } } diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/JaegerPropagator.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/JaegerPropagator.java index 61f207d852b..290a62bef0e 100644 --- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/JaegerPropagator.java +++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/JaegerPropagator.java @@ -145,6 +145,11 @@ public Context extract(Context context, @Nullable C carrier, TextMapGetter SpanContext getSpanContextFromHeader( @Nullable C carrier, TextMapGetter getter) { String value = getter.get(carrier, PROPAGATION_HEADER); diff --git a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/OtTracePropagator.java b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/OtTracePropagator.java index fb51ccf4f14..3bd0ed771fe 100644 --- a/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/OtTracePropagator.java +++ b/extensions/trace-propagators/src/main/java/io/opentelemetry/extension/trace/propagation/OtTracePropagator.java @@ -133,4 +133,9 @@ private static SpanContext buildSpanContext( } return Common.buildSpanContext(traceId, spanId, sampled); } + + @Override + public String toString() { + return "OtTracePropagator"; + } } diff --git a/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/B3PropagatorTest.java b/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/B3PropagatorTest.java index 6c71cb2cc69..af2f4de33c7 100644 --- a/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/B3PropagatorTest.java +++ b/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/B3PropagatorTest.java @@ -724,4 +724,12 @@ void inject_DebugContext_SingleHeader() { B3Propagator.COMBINED_HEADER, TRACE_ID + "-" + SPAN_ID + "-" + B3Propagator.SINGLE_HEADER_DEBUG); } + + @Test + void toString_Valid() { + assertThat(b3Propagator.toString()) + .isEqualTo("B3Propagator{b3PropagatorInjector=B3PropagatorInjectorMultipleHeaders}"); + assertThat(b3PropagatorSingleHeader.toString()) + .isEqualTo("B3Propagator{b3PropagatorInjector=B3PropagatorInjectorSingleHeader}"); + } } diff --git a/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/JaegerPropagatorTest.java b/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/JaegerPropagatorTest.java index 73a2552a66a..4dbadd6c183 100644 --- a/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/JaegerPropagatorTest.java +++ b/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/JaegerPropagatorTest.java @@ -460,6 +460,11 @@ void extract_nullGetter() { assertThat(jaegerPropagator.extract(context, Collections.emptyMap(), null)).isSameAs(context); } + @Test + void toString_Valid() { + assertThat(jaegerPropagator.toString()).isEqualTo("JaegerPropagator"); + } + private static String generateTraceIdHeaderValue( String traceId, String spanId, char parentSpan, String sampled) { return traceId diff --git a/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/OtTracePropagatorTest.java b/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/OtTracePropagatorTest.java index 5c2fa5a9d4e..39e4bbfc0d7 100644 --- a/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/OtTracePropagatorTest.java +++ b/extensions/trace-propagators/src/test/java/io/opentelemetry/extension/trace/propagation/OtTracePropagatorTest.java @@ -340,4 +340,9 @@ void extract_nullGetter() { Context.current()); assertThat(propagator.extract(context, Collections.emptyMap(), null)).isSameAs(context); } + + @Test + void toString_Valid() { + assertThat(propagator.toString()).isEqualTo("OtTracePropagator"); + } } diff --git a/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java b/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java index 79c264759d4..c15ffae9058 100644 --- a/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java +++ b/sdk/all/src/main/java/io/opentelemetry/sdk/OpenTelemetrySdk.java @@ -80,7 +80,6 @@ public ContextPropagators getPropagators() { @Override public String toString() { - // TODO(anuraaga): Add propagators return "OpenTelemetrySdk{" + "tracerProvider=" + tracerProvider.unobfuscate() @@ -88,6 +87,8 @@ public String toString() { + meterProvider.unobfuscate() + ", loggerProvider=" + loggerProvider + + ", propagators=" + + propagators + "}"; } diff --git a/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java b/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java index 3a9228d9c8c..6323293eee2 100644 --- a/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java +++ b/sdk/all/src/test/java/io/opentelemetry/sdk/OpenTelemetrySdkTest.java @@ -326,6 +326,8 @@ void stringRepresentation() { when(metricExporter.toString()).thenReturn("MockMetricExporter{}"); LogRecordExporter logRecordExporter = mock(LogRecordExporter.class); when(logRecordExporter.toString()).thenReturn("MockLogRecordExporter{}"); + TextMapPropagator propagator = mock(TextMapPropagator.class); + when(propagator.toString()).thenReturn("MockTextMapPropagator{}"); Resource resource = Resource.builder().put(AttributeKey.stringKey("service.name"), "otel-test").build(); OpenTelemetrySdk sdk = @@ -352,6 +354,7 @@ void stringRepresentation() { SimpleLogRecordProcessor.create( LogRecordExporter.composite(logRecordExporter, logRecordExporter))) .build()) + .setPropagators(ContextPropagators.create(propagator)) .build(); assertThat(sdk.toString()) @@ -376,7 +379,8 @@ void stringRepresentation() { + "resource=Resource{schemaUrl=null, attributes={service.name=\"otel-test\"}}, " + "logLimits=LogLimits{maxNumberOfAttributes=128, maxAttributeValueLength=2147483647}, " + "logRecordProcessor=SimpleLogRecordProcessor{logRecordExporter=MultiLogRecordExporter{logRecordExporters=[MockLogRecordExporter{}, MockLogRecordExporter{}]}}" - + "}" + + "}, " + + "propagators=DefaultContextPropagators{textMapPropagator=MockTextMapPropagator{}}" + "}"); } }