From f11bd75710f2fef603d325793cef6b388754a1eb Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 21 May 2021 11:48:54 -0700 Subject: [PATCH] Don't use singleton for propagator getters/setters (#3054) --- .../api/instrumenter/InstrumenterTest.java | 9 ++++----- .../v2_0/ApacheHttpClientInstrumenters.java | 2 +- .../apachehttpclient/v2_0/HttpHeaderSetter.java | 3 +-- .../v4_0/ApacheHttpClientInstrumenters.java | 2 +- .../apachehttpclient/v4_0/HttpHeaderSetter.java | 3 +-- .../armeria/v1_3/ArmeriaTracingBuilder.java | 4 ++-- .../armeria/v1_3/ClientRequestContextSetter.java | 3 +-- .../armeria/v1_3/RequestContextGetter.java | 3 +-- .../javaagent/instrumentation/jms/JmsInstrumenters.java | 2 +- .../instrumentation/jms/MessagePropertySetter.java | 3 +-- 10 files changed, 14 insertions(+), 20 deletions(-) diff --git a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterTest.java b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterTest.java index a092b1a5b8..940209a4e3 100644 --- a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterTest.java +++ b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterTest.java @@ -86,8 +86,7 @@ class InstrumenterTest { } } - enum MapGetter implements TextMapGetter> { - INSTANCE; + class MapGetter implements TextMapGetter> { @Override public Iterable keys(Map carrier) { @@ -109,7 +108,7 @@ class InstrumenterTest { Instrumenter., Map>newBuilder( otelTesting.getOpenTelemetry(), "test", unused -> "span") .addAttributesExtractors(new AttributesExtractor1(), new AttributesExtractor2()) - .newServerInstrumenter(MapGetter.INSTANCE); + .newServerInstrumenter(new MapGetter()); Context context = instrumenter.start(Context.root(), REQUEST); SpanContext spanContext = Span.fromContext(context).getSpanContext(); @@ -151,7 +150,7 @@ class InstrumenterTest { Instrumenter., Map>newBuilder( otelTesting.getOpenTelemetry(), "test", unused -> "span") .addAttributesExtractors(new AttributesExtractor1(), new AttributesExtractor2()) - .newServerInstrumenter(MapGetter.INSTANCE); + .newServerInstrumenter(new MapGetter()); Context context = instrumenter.start(Context.root(), REQUEST); SpanContext spanContext = Span.fromContext(context).getSpanContext(); @@ -175,7 +174,7 @@ class InstrumenterTest { Instrumenter., Map>newBuilder( otelTesting.getOpenTelemetry(), "test", unused -> "span") .addAttributesExtractors(new AttributesExtractor1(), new AttributesExtractor2()) - .newServerInstrumenter(MapGetter.INSTANCE); + .newServerInstrumenter(new MapGetter()); Map request = new HashMap<>(REQUEST); W3CTraceContextPropagator.getInstance() diff --git a/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientInstrumenters.java b/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientInstrumenters.java index d7d98db967..0320379a40 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientInstrumenters.java +++ b/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientInstrumenters.java @@ -34,7 +34,7 @@ public final class ApacheHttpClientInstrumenters { .setSpanStatusExtractor(spanStatusExtractor) .addAttributesExtractor(httpAttributesExtractor) .addAttributesExtractor(new ApacheHttpClientNetAttributesExtractor()) - .newClientInstrumenter(HttpHeaderSetter.INSTANCE); + .newClientInstrumenter(new HttpHeaderSetter()); } public static Instrumenter instrumenter() { diff --git a/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/HttpHeaderSetter.java b/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/HttpHeaderSetter.java index bc07ed67e0..7f50abfe0b 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/HttpHeaderSetter.java +++ b/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/HttpHeaderSetter.java @@ -9,8 +9,7 @@ import io.opentelemetry.context.propagation.TextMapSetter; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpMethod; -enum HttpHeaderSetter implements TextMapSetter { - INSTANCE; +final class HttpHeaderSetter implements TextMapSetter { @Override public void set(HttpMethod carrier, String key, String value) { diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientInstrumenters.java b/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientInstrumenters.java index ced274617a..50fcdc3348 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientInstrumenters.java +++ b/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientInstrumenters.java @@ -35,7 +35,7 @@ public final class ApacheHttpClientInstrumenters { .setSpanStatusExtractor(spanStatusExtractor) .addAttributesExtractor(httpAttributesExtractor) .addAttributesExtractor(new ApacheHttpClientNetAttributesExtractor()) - .newClientInstrumenter(HttpHeaderSetter.INSTANCE); + .newClientInstrumenter(new HttpHeaderSetter()); } public static Instrumenter instrumenter() { diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/HttpHeaderSetter.java b/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/HttpHeaderSetter.java index ae7882dd45..d4172ca28a 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/HttpHeaderSetter.java +++ b/instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/HttpHeaderSetter.java @@ -8,8 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0; import io.opentelemetry.context.propagation.TextMapSetter; import org.apache.http.client.methods.HttpUriRequest; -enum HttpHeaderSetter implements TextMapSetter { - INSTANCE; +final class HttpHeaderSetter implements TextMapSetter { @Override public void set(HttpUriRequest carrier, String key, String value) { diff --git a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaTracingBuilder.java b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaTracingBuilder.java index 3facab43ea..5b0a87775c 100644 --- a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaTracingBuilder.java +++ b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaTracingBuilder.java @@ -86,7 +86,7 @@ public final class ArmeriaTracingBuilder { serverInstrumenterBuilder.addRequestMetrics(HttpServerMetrics.get()); return new ArmeriaTracing( - clientInstrumenterBuilder.newClientInstrumenter(ClientRequestContextSetter.INSTANCE), - serverInstrumenterBuilder.newServerInstrumenter(RequestContextGetter.INSTANCE)); + clientInstrumenterBuilder.newClientInstrumenter(new ClientRequestContextSetter()), + serverInstrumenterBuilder.newServerInstrumenter(new RequestContextGetter())); } } diff --git a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ClientRequestContextSetter.java b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ClientRequestContextSetter.java index ff4aee9ebe..19f6d9496b 100644 --- a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ClientRequestContextSetter.java +++ b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ClientRequestContextSetter.java @@ -9,8 +9,7 @@ import com.linecorp.armeria.client.ClientRequestContext; import io.opentelemetry.context.propagation.TextMapSetter; import org.checkerframework.checker.nullness.qual.Nullable; -enum ClientRequestContextSetter implements TextMapSetter { - INSTANCE; +final class ClientRequestContextSetter implements TextMapSetter { @Override public void set(@Nullable ClientRequestContext carrier, String key, String value) { diff --git a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/RequestContextGetter.java b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/RequestContextGetter.java index 120630cba5..0ed1d558e2 100644 --- a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/RequestContextGetter.java +++ b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/RequestContextGetter.java @@ -12,8 +12,7 @@ import java.util.Collections; import java.util.stream.Collectors; import org.checkerframework.checker.nullness.qual.Nullable; -enum RequestContextGetter implements TextMapGetter { - INSTANCE; +final class RequestContextGetter implements TextMapGetter { @Override public Iterable keys(@Nullable ServiceRequestContext carrier) { diff --git a/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsInstrumenters.java b/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsInstrumenters.java index 34be649eba..a001bfa8c8 100644 --- a/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsInstrumenters.java +++ b/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsInstrumenters.java @@ -30,7 +30,7 @@ public final class JmsInstrumenters { Instrumenter.newBuilder( otel, INSTRUMENTATION_NAME, spanNameExtractor) .addAttributesExtractor(attributesExtractor) - .newProducerInstrumenter(MessagePropertySetter.INSTANCE); + .newProducerInstrumenter(new MessagePropertySetter()); // MessageConsumer does not do context propagation CONSUMER_INSTRUMENTER = Instrumenter.newBuilder( diff --git a/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertySetter.java b/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertySetter.java index 0f4be9b405..e5ad95df6b 100644 --- a/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertySetter.java +++ b/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/MessagePropertySetter.java @@ -10,8 +10,7 @@ import javax.jms.JMSException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -enum MessagePropertySetter implements TextMapSetter { - INSTANCE; +final class MessagePropertySetter implements TextMapSetter { private static final Logger log = LoggerFactory.getLogger(MessagePropertySetter.class);