Convert TextMapSetters and TextMapGetters to enums (#4522)
* Convert TextMapSetters to enums * Convert TextMapGetters to enums
This commit is contained in:
parent
1cddc96c8d
commit
e7b8cca107
|
@ -12,7 +12,8 @@ import java.util.Optional;
|
|||
import java.util.stream.Collectors;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
class AkkaHttpServerHeaders implements TextMapGetter<HttpRequest> {
|
||||
enum AkkaHttpServerHeaders implements TextMapGetter<HttpRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(HttpRequest httpRequest) {
|
||||
|
|
|
@ -28,7 +28,7 @@ public class AkkaHttpServerSingletons {
|
|||
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesExtractor))
|
||||
.addAttributesExtractor(httpAttributesExtractor)
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(new AkkaHttpServerHeaders());
|
||||
.newServerInstrumenter(AkkaHttpServerHeaders.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {
|
||||
|
|
|
@ -48,9 +48,8 @@ final class CamelPropagationUtil {
|
|||
.inject(context, exchangeHeaders, MapSetter.INSTANCE);
|
||||
}
|
||||
|
||||
private static class MapGetter implements TextMapGetter<Map<String, Object>> {
|
||||
|
||||
private static final MapGetter INSTANCE = new MapGetter();
|
||||
private enum MapGetter implements TextMapGetter<Map<String, Object>> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, Object> map) {
|
||||
|
@ -64,9 +63,8 @@ final class CamelPropagationUtil {
|
|||
}
|
||||
}
|
||||
|
||||
private static class MapSetter implements TextMapSetter<Map<String, Object>> {
|
||||
|
||||
private static final MapSetter INSTANCE = new MapSetter();
|
||||
private enum MapSetter implements TextMapSetter<Map<String, Object>> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(Map<String, Object> carrier, String key, String value) {
|
||||
|
|
|
@ -7,7 +7,8 @@ package io.opentelemetry.instrumentation.apachedubbo.v2_7;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
|
||||
final class DubboHeadersGetter implements TextMapGetter<DubboRequest> {
|
||||
enum DubboHeadersGetter implements TextMapGetter<DubboRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(DubboRequest request) {
|
||||
|
|
|
@ -7,7 +7,8 @@ package io.opentelemetry.instrumentation.apachedubbo.v2_7;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
|
||||
final class DubboHeadersSetter implements TextMapSetter<DubboRequest> {
|
||||
enum DubboHeadersSetter implements TextMapSetter<DubboRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(DubboRequest request, String key, String value) {
|
||||
|
|
|
@ -83,7 +83,7 @@ public final class DubboTracingBuilder {
|
|||
}
|
||||
|
||||
return new DubboTracing(
|
||||
serverInstrumenterBuilder.newServerInstrumenter(new DubboHeadersGetter()),
|
||||
clientInstrumenterBuilder.newClientInstrumenter(new DubboHeadersSetter()));
|
||||
serverInstrumenterBuilder.newServerInstrumenter(DubboHeadersGetter.INSTANCE),
|
||||
clientInstrumenterBuilder.newClientInstrumenter(DubboHeadersSetter.INSTANCE));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class ApacheHttpAsyncClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<ApacheHttpClientRequest, HttpResponse> instrumenter() {
|
||||
|
|
|
@ -7,7 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
|
||||
public class HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(ApacheHttpClientRequest carrier, String key, String value) {
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class ApacheHttpClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<HttpMethod, HttpMethod> instrumenter() {
|
||||
|
|
|
@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapSetter;
|
|||
import org.apache.commons.httpclient.Header;
|
||||
import org.apache.commons.httpclient.HttpMethod;
|
||||
|
||||
final class HttpHeaderSetter implements TextMapSetter<HttpMethod> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<HttpMethod> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(HttpMethod carrier, String key, String value) {
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class ApacheHttpClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<ApacheHttpClientRequest, HttpResponse> instrumenter() {
|
||||
|
|
|
@ -7,7 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
|
||||
final class HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<ApacheHttpClientRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(ApacheHttpClientRequest carrier, String key, String value) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class ApacheHttpClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<ClassicHttpRequest, HttpResponse> instrumenter() {
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v5_0;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import org.apache.hc.core5.http.ClassicHttpRequest;
|
||||
|
||||
final class HttpHeaderSetter implements TextMapSetter<ClassicHttpRequest> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<ClassicHttpRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(ClassicHttpRequest carrier, String key, String value) {
|
||||
|
|
|
@ -148,7 +148,7 @@ public final class ArmeriaTracingBuilder {
|
|||
}
|
||||
|
||||
return new ArmeriaTracing(
|
||||
clientInstrumenterBuilder.newClientInstrumenter(new ClientRequestContextSetter()),
|
||||
serverInstrumenterBuilder.newServerInstrumenter(new RequestContextGetter()));
|
||||
clientInstrumenterBuilder.newClientInstrumenter(ClientRequestContextSetter.INSTANCE),
|
||||
serverInstrumenterBuilder.newServerInstrumenter(RequestContextGetter.INSTANCE));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,8 @@ import com.linecorp.armeria.client.ClientRequestContext;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
final class ClientRequestContextSetter implements TextMapSetter<ClientRequestContext> {
|
||||
enum ClientRequestContextSetter implements TextMapSetter<ClientRequestContext> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(@Nullable ClientRequestContext carrier, String key, String value) {
|
||||
|
|
|
@ -12,7 +12,8 @@ import java.util.Collections;
|
|||
import java.util.stream.Collectors;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
final class RequestContextGetter implements TextMapGetter<ServiceRequestContext> {
|
||||
enum RequestContextGetter implements TextMapGetter<ServiceRequestContext> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(@Nullable ServiceRequestContext carrier) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class AsyncHttpClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<Request, Response> instrumenter() {
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v1_9;
|
|||
import com.ning.http.client.Request;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
|
||||
public class HttpHeaderSetter implements TextMapSetter<Request> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<Request> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(Request carrier, String key, String value) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class AsyncHttpClientSingletons {
|
|||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addAttributesExtractor(new AsyncHttpClientAdditionalAttributesExtractor())
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<RequestContext, Response> instrumenter() {
|
||||
|
|
|
@ -7,7 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
|
||||
public class HttpHeaderSetter implements TextMapSetter<RequestContext> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<RequestContext> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(RequestContext carrier, String key, String value) {
|
||||
|
|
|
@ -59,9 +59,8 @@ final class ParentContextExtractor {
|
|||
MapGetter.INSTANCE);
|
||||
}
|
||||
|
||||
private static class MapGetter implements TextMapGetter<Map<String, String>> {
|
||||
|
||||
private static final MapGetter INSTANCE = new MapGetter();
|
||||
private enum MapGetter implements TextMapGetter<Map<String, String>> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> map) {
|
||||
|
|
|
@ -13,9 +13,8 @@ import java.util.Map;
|
|||
|
||||
final class SqsParentContext {
|
||||
|
||||
private static class MapGetter implements TextMapGetter<Map<String, String>> {
|
||||
|
||||
private static final MapGetter INSTANCE = new MapGetter();
|
||||
enum MapGetter implements TextMapGetter<Map<String, String>> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> map) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public class GoogleHttpClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.googlehttpclient;
|
|||
import com.google.api.client.http.HttpRequest;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
|
||||
public class HttpHeaderSetter implements TextMapSetter<HttpRequest> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<HttpRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(HttpRequest carrier, String key, String value) {
|
||||
|
|
|
@ -36,7 +36,7 @@ public final class GrizzlySingletons {
|
|||
context = GrizzlyErrorHolder.init(context);
|
||||
return ServerSpanNaming.init(context, ServerSpanNaming.Source.CONTAINER);
|
||||
})
|
||||
.newServerInstrumenter(new HttpRequestHeadersGetter());
|
||||
.newServerInstrumenter(HttpRequestHeadersGetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<HttpRequestPacket, HttpResponsePacket> instrumenter() {
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.grizzly;
|
|||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import org.glassfish.grizzly.http.HttpRequestPacket;
|
||||
|
||||
final class HttpRequestHeadersGetter implements TextMapGetter<HttpRequestPacket> {
|
||||
enum HttpRequestHeadersGetter implements TextMapGetter<HttpRequestPacket> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(HttpRequestPacket request) {
|
||||
|
|
|
@ -9,9 +9,8 @@ import io.grpc.Metadata;
|
|||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
final class GrpcExtractAdapter implements TextMapGetter<GrpcRequest> {
|
||||
|
||||
static final GrpcExtractAdapter GETTER = new GrpcExtractAdapter();
|
||||
enum GrpcRequestGetter implements TextMapGetter<GrpcRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(GrpcRequest request) {
|
|
@ -94,7 +94,7 @@ public final class GrpcTracingBuilder {
|
|||
}
|
||||
|
||||
return new GrpcTracing(
|
||||
serverInstrumenterBuilder.newServerInstrumenter(GrpcExtractAdapter.GETTER),
|
||||
serverInstrumenterBuilder.newServerInstrumenter(GrpcRequestGetter.INSTANCE),
|
||||
// gRPC client interceptors require two phases, one to set up request and one to execute.
|
||||
// So we go ahead and inject manually in this instrumentation.
|
||||
clientInstrumenterBuilder.newInstrumenter(SpanKindExtractor.alwaysClient()),
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.instrumentation.jetty.httpclient.v9_2.internal;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import org.eclipse.jetty.client.api.Request;
|
||||
|
||||
final class HttpHeaderSetter implements TextMapSetter<Request> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<Request> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(Request request, String key, String value) {
|
||||
|
|
|
@ -64,6 +64,6 @@ public final class JettyClientInstrumenterBuilder {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractors(additionalExtractors)
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class JmsSingletons {
|
|||
return Instrumenter.<MessageWithDestination, Void>builder(
|
||||
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
|
||||
.addAttributesExtractor(attributesExtractor)
|
||||
.newProducerInstrumenter(new MessagePropertySetter());
|
||||
.newProducerInstrumenter(MessagePropertySetter.INSTANCE);
|
||||
}
|
||||
|
||||
private static Instrumenter<MessageWithDestination, Void> buildConsumerInstrumenter() {
|
||||
|
@ -60,7 +60,7 @@ public final class JmsSingletons {
|
|||
return Instrumenter.<MessageWithDestination, Void>builder(
|
||||
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
|
||||
.addAttributesExtractor(attributesExtractor)
|
||||
.newConsumerInstrumenter(new MessagePropertyGetter());
|
||||
.newConsumerInstrumenter(MessagePropertyGetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<MessageWithDestination, Void> producerInstrumenter() {
|
||||
|
|
|
@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import java.util.Collections;
|
||||
import javax.jms.JMSException;
|
||||
|
||||
public final class MessagePropertyGetter implements TextMapGetter<MessageWithDestination> {
|
||||
enum MessagePropertyGetter implements TextMapGetter<MessageWithDestination> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(MessageWithDestination message) {
|
||||
|
|
|
@ -10,7 +10,8 @@ import javax.jms.JMSException;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
final class MessagePropertySetter implements TextMapSetter<MessageWithDestination> {
|
||||
enum MessagePropertySetter implements TextMapSetter<MessageWithDestination> {
|
||||
INSTANCE;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MessagePropertySetter.class);
|
||||
|
||||
|
|
|
@ -31,9 +31,10 @@ import org.slf4j.LoggerFactory;
|
|||
public final class KafkaTracing {
|
||||
private static final Logger logger = LoggerFactory.getLogger(KafkaTracing.class);
|
||||
|
||||
private static final TextMapGetter<ConsumerRecord<?, ?>> GETTER = new KafkaConsumerRecordGetter();
|
||||
private static final TextMapGetter<ConsumerRecord<?, ?>> GETTER =
|
||||
KafkaConsumerRecordGetter.INSTANCE;
|
||||
|
||||
private static final TextMapSetter<Headers> SETTER = new KafkaHeadersSetter();
|
||||
private static final TextMapSetter<Headers> SETTER = KafkaHeadersSetter.INSTANCE;
|
||||
|
||||
private final OpenTelemetry openTelemetry;
|
||||
private final Instrumenter<ProducerRecord<?, ?>, Void> producerInstrumenter;
|
||||
|
|
|
@ -13,7 +13,9 @@ import javax.annotation.Nullable;
|
|||
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
||||
import org.apache.kafka.common.header.Header;
|
||||
|
||||
public final class KafkaConsumerRecordGetter implements TextMapGetter<ConsumerRecord<?, ?>> {
|
||||
public enum KafkaConsumerRecordGetter implements TextMapGetter<ConsumerRecord<?, ?>> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(ConsumerRecord<?, ?> carrier) {
|
||||
return StreamSupport.stream(carrier.headers().spliterator(), false)
|
||||
|
|
|
@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapSetter;
|
|||
import java.nio.charset.StandardCharsets;
|
||||
import org.apache.kafka.common.header.Headers;
|
||||
|
||||
public final class KafkaHeadersSetter implements TextMapSetter<Headers> {
|
||||
public enum KafkaHeadersSetter implements TextMapSetter<Headers> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(Headers headers, String key, String value) {
|
||||
|
|
|
@ -99,11 +99,11 @@ public final class KafkaInstrumenterFactory {
|
|||
if (!KafkaPropagation.isPropagationEnabled()) {
|
||||
return builder.newInstrumenter(SpanKindExtractor.alwaysConsumer());
|
||||
} else if (ExperimentalConfig.get().suppressMessagingReceiveSpans()) {
|
||||
return builder.newConsumerInstrumenter(new KafkaConsumerRecordGetter());
|
||||
return builder.newConsumerInstrumenter(KafkaConsumerRecordGetter.INSTANCE);
|
||||
} else {
|
||||
builder.addSpanLinksExtractor(
|
||||
SpanLinksExtractor.fromUpstreamRequest(
|
||||
GlobalOpenTelemetry.getPropagators(), new KafkaConsumerRecordGetter()));
|
||||
GlobalOpenTelemetry.getPropagators(), KafkaConsumerRecordGetter.INSTANCE));
|
||||
return builder.newInstrumenter(SpanKindExtractor.alwaysConsumer());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ import org.apache.kafka.common.record.RecordBatch;
|
|||
|
||||
public final class KafkaPropagation {
|
||||
|
||||
private static final KafkaHeadersSetter SETTER = new KafkaHeadersSetter();
|
||||
private static final KafkaHeadersSetter SETTER = KafkaHeadersSetter.INSTANCE;
|
||||
|
||||
private static final boolean CLIENT_PROPAGATION_ENABLED =
|
||||
Config.get().getBoolean("otel.instrumentation.kafka.client-propagation.enabled", true);
|
||||
|
|
|
@ -7,9 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.liberty.dispatcher;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
|
||||
public class LibertyDispatcherRequestGetter implements TextMapGetter<LibertyRequest> {
|
||||
|
||||
public static final LibertyDispatcherRequestGetter GETTER = new LibertyDispatcherRequestGetter();
|
||||
enum LibertyDispatcherRequestGetter implements TextMapGetter<LibertyRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(LibertyRequest carrier) {
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class LibertyDispatcherSingletons {
|
|||
.addContextCustomizer(
|
||||
(context, request, attributes) -> ServerSpanNaming.init(context, CONTAINER))
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(LibertyDispatcherRequestGetter.GETTER);
|
||||
.newServerInstrumenter(LibertyDispatcherRequestGetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<LibertyRequest, LibertyResponse> instrumenter() {
|
||||
|
|
|
@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapSetter;
|
|||
import io.opentelemetry.javaagent.instrumentation.netty.v3_8.HttpRequestAndChannel;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
final class HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
|
||||
enum HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(@Nullable HttpRequestAndChannel carrier, String key, String value) {
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class NettyClientSingletons {
|
|||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.addContextCustomizer(
|
||||
(context, requestAndChannel, startAttributes) -> NettyErrorHolder.init(context))
|
||||
.newClientInstrumenter(new HttpRequestHeadersSetter());
|
||||
.newClientInstrumenter(HttpRequestHeadersSetter.INSTANCE);
|
||||
|
||||
NettyConnectNetAttributesExtractor nettyConnectAttributesExtractor =
|
||||
new NettyConnectNetAttributesExtractor();
|
||||
|
|
|
@ -9,7 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import io.opentelemetry.javaagent.instrumentation.netty.v3_8.HttpRequestAndChannel;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
final class NettyHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
|
||||
enum NettyHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(HttpRequestAndChannel requestAndChannel) {
|
||||
|
|
|
@ -33,7 +33,7 @@ final class NettyServerSingletons {
|
|||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.addContextCustomizer(
|
||||
(context, requestAndChannel, startAttributes) -> NettyErrorHolder.init(context))
|
||||
.newServerInstrumenter(new NettyHeadersGetter());
|
||||
.newServerInstrumenter(NettyHeadersGetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<HttpRequestAndChannel, HttpResponse> instrumenter() {
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.netty.common.client;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.javaagent.instrumentation.netty.common.HttpRequestAndChannel;
|
||||
|
||||
final class HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
|
||||
enum HttpRequestHeadersSetter implements TextMapSetter<HttpRequestAndChannel> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(HttpRequestAndChannel requestAndChannel, String key, String value) {
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class NettyClientInstrumenterFactory {
|
|||
.addAttributesExtractor(netClientAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netClientAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpRequestHeadersSetter());
|
||||
.newClientInstrumenter(HttpRequestHeadersSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public NettyConnectionInstrumenter createConnectionInstrumenter() {
|
||||
|
|
|
@ -9,7 +9,9 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import io.opentelemetry.javaagent.instrumentation.netty.common.HttpRequestAndChannel;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
final class HttpRequestHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
|
||||
enum HttpRequestHeadersGetter implements TextMapGetter<HttpRequestAndChannel> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(HttpRequestAndChannel carrier) {
|
||||
return carrier.request().headers().names();
|
||||
|
|
|
@ -37,7 +37,7 @@ public final class NettyServerInstrumenterFactory {
|
|||
// netty is not exactly a "container", but it's the best match out of these
|
||||
return ServerSpanNaming.init(context, ServerSpanNaming.Source.CONTAINER);
|
||||
})
|
||||
.newServerInstrumenter(new HttpRequestHeadersGetter());
|
||||
.newServerInstrumenter(HttpRequestHeadersGetter.INSTANCE);
|
||||
}
|
||||
|
||||
private NettyServerInstrumenterFactory() {}
|
||||
|
|
|
@ -10,9 +10,8 @@ import javax.annotation.Nullable;
|
|||
import okhttp3.Request;
|
||||
|
||||
/** Helper class to inject span context into request headers. */
|
||||
final class RequestHeaderSetter implements TextMapSetter<Request.Builder> {
|
||||
|
||||
static final RequestHeaderSetter SETTER = new RequestHeaderSetter();
|
||||
enum RequestHeaderSetter implements TextMapSetter<Request.Builder> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(@Nullable Request.Builder carrier, String key, String value) {
|
||||
|
|
|
@ -55,7 +55,9 @@ final class TracingInterceptor implements Interceptor {
|
|||
// thus we must use Instrumenter<Request, Response>, and Request is immutable
|
||||
private Request injectContextToRequest(Request request, Context context) {
|
||||
Request.Builder requestBuilder = request.newBuilder();
|
||||
propagators.getTextMapPropagator().inject(context, requestBuilder, RequestHeaderSetter.SETTER);
|
||||
propagators
|
||||
.getTextMapPropagator()
|
||||
.inject(context, requestBuilder, RequestHeaderSetter.INSTANCE);
|
||||
return requestBuilder.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.playws;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import play.shaded.ahc.org.asynchttpclient.Request;
|
||||
|
||||
public class HttpHeaderSetter implements TextMapSetter<Request> {
|
||||
enum HttpHeaderSetter implements TextMapSetter<Request> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(Request carrier, String key, String value) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public class PlayWsClientSingletons {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractor(PeerServiceAttributesExtractor.create(netAttributesExtractor))
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpHeaderSetter());
|
||||
.newClientInstrumenter(HttpHeaderSetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<Request, Response> instrumenter() {
|
||||
|
|
|
@ -8,9 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.rabbitmq;
|
|||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.Collections;
|
||||
|
||||
public class TextMapExtractAdapter implements TextMapGetter<DeliveryRequest> {
|
||||
|
||||
public static final TextMapExtractAdapter GETTER = new TextMapExtractAdapter();
|
||||
enum DeliveryRequestGetter implements TextMapGetter<DeliveryRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(DeliveryRequest carrier) {
|
|
@ -79,6 +79,6 @@ public class RabbitSingletons {
|
|||
return Instrumenter.<DeliveryRequest, Void>builder(
|
||||
GlobalOpenTelemetry.get(), instrumentationName, DeliveryRequest::spanName)
|
||||
.addAttributesExtractors(extractors)
|
||||
.newConsumerInstrumenter(TextMapExtractAdapter.GETTER);
|
||||
.newConsumerInstrumenter(DeliveryRequestGetter.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import javax.annotation.Nullable;
|
||||
import ratpack.http.Request;
|
||||
|
||||
final class RatpackGetter implements TextMapGetter<Request> {
|
||||
|
||||
RatpackGetter() {}
|
||||
enum RatpackGetter implements TextMapGetter<Request> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Request request) {
|
||||
|
|
|
@ -70,7 +70,7 @@ public final class RatpackTracingBuilder {
|
|||
.addAttributesExtractor(httpAttributes)
|
||||
.addAttributesExtractors(additionalExtractors)
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(new RatpackGetter());
|
||||
.newServerInstrumenter(RatpackGetter.INSTANCE);
|
||||
|
||||
return new RatpackTracing(instrumenter);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,8 @@ import org.restlet.data.Form;
|
|||
import org.restlet.data.Message;
|
||||
import org.restlet.data.Request;
|
||||
|
||||
final class RestletHeadersGetter implements TextMapGetter<Request> {
|
||||
enum RestletHeadersGetter implements TextMapGetter<Request> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Request carrier) {
|
||||
|
|
|
@ -78,7 +78,7 @@ public final class RestletTracingBuilder {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractors(additionalExtractors)
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(new RestletHeadersGetter());
|
||||
.newServerInstrumenter(RestletHeadersGetter.INSTANCE);
|
||||
|
||||
return new RestletTracing(instrumenter);
|
||||
}
|
||||
|
|
|
@ -94,13 +94,13 @@ class RocketMqInstrumenterFactory {
|
|||
if (batch) {
|
||||
SpanLinksExtractor<MessageExt> spanLinksExtractor =
|
||||
SpanLinksExtractor.fromUpstreamRequest(
|
||||
openTelemetry.getPropagators(), TextMapExtractAdapter.GETTER);
|
||||
openTelemetry.getPropagators(), TextMapExtractAdapter.INSTANCE);
|
||||
|
||||
return builder
|
||||
.addSpanLinksExtractor(spanLinksExtractor)
|
||||
.newInstrumenter(SpanKindExtractor.alwaysConsumer());
|
||||
} else {
|
||||
return builder.newConsumerInstrumenter(TextMapExtractAdapter.GETTER);
|
||||
return builder.newConsumerInstrumenter(TextMapExtractAdapter.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import javax.annotation.Nullable;
|
||||
import org.apache.rocketmq.common.message.MessageExt;
|
||||
|
||||
final class TextMapExtractAdapter implements TextMapGetter<MessageExt> {
|
||||
|
||||
public static final TextMapExtractAdapter GETTER = new TextMapExtractAdapter();
|
||||
enum TextMapExtractAdapter implements TextMapGetter<MessageExt> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(MessageExt carrier) {
|
||||
|
|
|
@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import java.util.Collections;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
public class JavaxHttpServletRequestGetter implements TextMapGetter<HttpServletRequest> {
|
||||
|
||||
public static final JavaxHttpServletRequestGetter GETTER = new JavaxHttpServletRequestGetter();
|
||||
public enum JavaxHttpServletRequestGetter implements TextMapGetter<HttpServletRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(HttpServletRequest carrier) {
|
||||
|
|
|
@ -22,7 +22,8 @@ public class KafkaBatchProcessSpanLinksExtractor
|
|||
|
||||
public KafkaBatchProcessSpanLinksExtractor(ContextPropagators contextPropagators) {
|
||||
this.singleRecordLinkExtractor =
|
||||
SpanLinksExtractor.fromUpstreamRequest(contextPropagators, new KafkaConsumerRecordGetter());
|
||||
SpanLinksExtractor.fromUpstreamRequest(
|
||||
contextPropagators, KafkaConsumerRecordGetter.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,7 +9,9 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import javax.annotation.Nullable;
|
||||
import org.springframework.amqp.core.Message;
|
||||
|
||||
final class MessageHeaderGetter implements TextMapGetter<Message> {
|
||||
enum MessageHeaderGetter implements TextMapGetter<Message> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Message carrier) {
|
||||
return carrier.getMessageProperties().getHeaders().keySet();
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class SpringRabbitSingletons {
|
|||
Instrumenter.<Message, Void>builder(
|
||||
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
|
||||
.addAttributesExtractor(attributesExtractor)
|
||||
.newConsumerInstrumenter(new MessageHeaderGetter());
|
||||
.newConsumerInstrumenter(MessageHeaderGetter.INSTANCE);
|
||||
}
|
||||
|
||||
public static Instrumenter<Message, Void> instrumenter() {
|
||||
|
|
|
@ -8,7 +8,9 @@ package io.opentelemetry.instrumentation.spring.web;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import org.springframework.http.HttpRequest;
|
||||
|
||||
final class HttpRequestSetter implements TextMapSetter<HttpRequest> {
|
||||
enum HttpRequestSetter implements TextMapSetter<HttpRequest> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public void set(HttpRequest httpRequest, String key, String value) {
|
||||
httpRequest.getHeaders().set(key, value);
|
||||
|
|
|
@ -72,7 +72,7 @@ public final class SpringWebTracingBuilder {
|
|||
.addAttributesExtractor(netAttributesExtractor)
|
||||
.addAttributesExtractors(additionalExtractors)
|
||||
.addRequestMetrics(HttpClientMetrics.get())
|
||||
.newClientInstrumenter(new HttpRequestSetter());
|
||||
.newClientInstrumenter(HttpRequestSetter.INSTANCE);
|
||||
|
||||
return new SpringWebTracing(instrumenter);
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ public final class SpringWebMvcTracingBuilder {
|
|||
.addAttributesExtractor(new SpringWebMvcNetAttributesExtractor())
|
||||
.addAttributesExtractors(additionalExtractors)
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(JavaxHttpServletRequestGetter.GETTER);
|
||||
.newServerInstrumenter(JavaxHttpServletRequestGetter.INSTANCE);
|
||||
|
||||
return new SpringWebMvcTracing(instrumenter);
|
||||
}
|
||||
|
|
|
@ -56,6 +56,6 @@ public final class TomcatInstrumenterFactory {
|
|||
return AppServerBridge.init(context);
|
||||
})
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(TomcatRequestGetter.GETTER);
|
||||
.newServerInstrumenter(TomcatRequestGetter.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,9 +9,8 @@ import io.opentelemetry.context.propagation.TextMapGetter;
|
|||
import java.util.Collections;
|
||||
import org.apache.coyote.Request;
|
||||
|
||||
public class TomcatRequestGetter implements TextMapGetter<Request> {
|
||||
|
||||
public static final TomcatRequestGetter GETTER = new TomcatRequestGetter();
|
||||
enum TomcatRequestGetter implements TextMapGetter<Request> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(Request carrier) {
|
||||
|
|
|
@ -10,9 +10,8 @@ import io.undertow.server.HttpServerExchange;
|
|||
import io.undertow.util.HttpString;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class UndertowExchangeGetter implements TextMapGetter<HttpServerExchange> {
|
||||
|
||||
public static final UndertowExchangeGetter GETTER = new UndertowExchangeGetter();
|
||||
enum UndertowExchangeGetter implements TextMapGetter<HttpServerExchange> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public Iterable<String> keys(HttpServerExchange carrier) {
|
||||
|
|
|
@ -51,7 +51,7 @@ public final class UndertowSingletons {
|
|||
return AppServerBridge.init(context);
|
||||
})
|
||||
.addRequestMetrics(HttpServerMetrics.get())
|
||||
.newServerInstrumenter(UndertowExchangeGetter.GETTER);
|
||||
.newServerInstrumenter(UndertowExchangeGetter.INSTANCE);
|
||||
}
|
||||
|
||||
private static final UndertowHelper HELPER = new UndertowHelper(INSTRUMENTER);
|
||||
|
|
Loading…
Reference in New Issue