Эх сурвалжийг харах

Remove jaxrs-client-1.1 instrumentation (#9213)

Trask Stalnaker 1 жил өмнө
parent
commit
dae1725abc

+ 9 - 0
instrumentation/jaxrs-client/jaxrs-client-1.1-testing/build.gradle.kts

@@ -0,0 +1,9 @@
+plugins {
+  id("otel.javaagent-instrumentation")
+}
+
+dependencies {
+  testLibrary("com.sun.jersey:jersey-client:1.1.4")
+
+  testInstrumentation(project(":instrumentation:http-url-connection:javaagent"))
+}

+ 6 - 1
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/test/groovy/JaxRsClientV1Test.groovy → instrumentation/jaxrs-client/jaxrs-client-1.1-testing/src/test/groovy/JaxRsClientV1Test.groovy

@@ -4,6 +4,7 @@
  */
 
 import com.sun.jersey.api.client.Client
+import com.sun.jersey.api.client.ClientHandlerException
 import com.sun.jersey.api.client.ClientResponse
 import com.sun.jersey.api.client.WebResource
 import com.sun.jersey.api.client.filter.GZIPContentEncodingFilter
@@ -58,7 +59,11 @@ class JaxRsClientV1Test extends HttpClientTest<WebResource.Builder> implements A
   @Override
   int sendRequest(WebResource.Builder resource, String method, URI uri, Map<String, String> headers) {
     def body = BODY_METHODS.contains(method) ? "" : null
-    return resource.method(method, ClientResponse, body).status
+    try {
+      return resource.method(method, ClientResponse, body).status
+    } catch (ClientHandlerException exception) {
+      throw exception.getCause()
+    }
   }
 
   @Override

+ 0 - 18
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/build.gradle.kts

@@ -1,18 +0,0 @@
-plugins {
-  id("otel.javaagent-instrumentation")
-}
-
-muzzle {
-  pass {
-    group.set("com.sun.jersey")
-    module.set("jersey-client")
-    versions.set("[1.1,]")
-    assertInverse.set(true)
-  }
-}
-
-dependencies {
-  library("com.sun.jersey:jersey-client:1.1.4")
-
-  testInstrumentation(project(":instrumentation:http-url-connection:javaagent"))
-}

+ 0 - 76
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/ClientHandlerInstrumentation.java

@@ -1,76 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v1_1;
-
-import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext;
-import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
-import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
-import static io.opentelemetry.javaagent.instrumentation.jaxrsclient.v1_1.JaxRsClientSingletons.instrumenter;
-import static net.bytebuddy.matcher.ElementMatchers.named;
-import static net.bytebuddy.matcher.ElementMatchers.returns;
-import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
-
-import com.sun.jersey.api.client.ClientRequest;
-import com.sun.jersey.api.client.ClientResponse;
-import io.opentelemetry.context.Context;
-import io.opentelemetry.context.Scope;
-import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
-import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import net.bytebuddy.asm.Advice;
-import net.bytebuddy.description.type.TypeDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-
-public class ClientHandlerInstrumentation implements TypeInstrumentation {
-  @Override
-  public ElementMatcher<ClassLoader> classLoaderOptimization() {
-    return hasClassesNamed("com.sun.jersey.api.client.ClientHandler");
-  }
-
-  @Override
-  public ElementMatcher<TypeDescription> typeMatcher() {
-    return implementsInterface(named("com.sun.jersey.api.client.ClientHandler"));
-  }
-
-  @Override
-  public void transform(TypeTransformer transformer) {
-    transformer.applyAdviceToMethod(
-        named("handle")
-            .and(takesArgument(0, named("com.sun.jersey.api.client.ClientRequest")))
-            .and(returns(named("com.sun.jersey.api.client.ClientResponse"))),
-        this.getClass().getName() + "$HandleAdvice");
-  }
-
-  @SuppressWarnings("unused")
-  public static class HandleAdvice {
-
-    @Advice.OnMethodEnter
-    public static void onEnter(
-        @Advice.Argument(0) ClientRequest request,
-        @Advice.Local("otelContext") Context context,
-        @Advice.Local("otelScope") Scope scope) {
-      Context parentContext = currentContext();
-      if (instrumenter().shouldStart(parentContext, request)) {
-        context = instrumenter().start(parentContext, request);
-        scope = context.makeCurrent();
-      }
-    }
-
-    @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
-    public static void onExit(
-        @Advice.Argument(0) ClientRequest request,
-        @Advice.Return ClientResponse response,
-        @Advice.Thrown Throwable throwable,
-        @Advice.Local("otelContext") Context context,
-        @Advice.Local("otelScope") Scope scope) {
-      if (scope == null) {
-        return;
-      }
-
-      scope.close();
-      instrumenter().end(context, request, response, throwable);
-    }
-  }
-}

+ 0 - 18
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/ClientRequestHeaderSetter.java

@@ -1,18 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v1_1;
-
-import com.sun.jersey.api.client.ClientRequest;
-import io.opentelemetry.context.propagation.TextMapSetter;
-
-enum ClientRequestHeaderSetter implements TextMapSetter<ClientRequest> {
-  INSTANCE;
-
-  @Override
-  public void set(ClientRequest carrier, String key, String value) {
-    carrier.getHeaders().putSingle(key, value);
-  }
-}

+ 0 - 66
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientHttpAttributesGetter.java

@@ -1,66 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v1_1;
-
-import static java.util.Collections.emptyList;
-
-import com.sun.jersey.api.client.ClientRequest;
-import com.sun.jersey.api.client.ClientResponse;
-import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesGetter;
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.Nullable;
-
-final class JaxRsClientHttpAttributesGetter
-    implements HttpClientAttributesGetter<ClientRequest, ClientResponse> {
-
-  @Override
-  @Nullable
-  public String getHttpRequestMethod(ClientRequest httpRequest) {
-    return httpRequest.getMethod();
-  }
-
-  @Override
-  public String getUrlFull(ClientRequest httpRequest) {
-    return httpRequest.getURI().toString();
-  }
-
-  @Override
-  public List<String> getHttpRequestHeader(ClientRequest httpRequest, String name) {
-    List<Object> rawHeaders = httpRequest.getHeaders().getOrDefault(name, emptyList());
-    if (rawHeaders.isEmpty()) {
-      return emptyList();
-    }
-    List<String> stringHeaders = new ArrayList<>(rawHeaders.size());
-    for (Object headerValue : rawHeaders) {
-      stringHeaders.add(String.valueOf(headerValue));
-    }
-    return stringHeaders;
-  }
-
-  @Override
-  public Integer getHttpResponseStatusCode(
-      ClientRequest httpRequest, ClientResponse httpResponse, @Nullable Throwable error) {
-    return httpResponse.getStatus();
-  }
-
-  @Override
-  public List<String> getHttpResponseHeader(
-      ClientRequest httpRequest, ClientResponse httpResponse, String name) {
-    return httpResponse.getHeaders().getOrDefault(name, emptyList());
-  }
-
-  @Override
-  @Nullable
-  public String getServerAddress(ClientRequest request) {
-    return request.getURI().getHost();
-  }
-
-  @Override
-  public Integer getServerPort(ClientRequest request) {
-    return request.getURI().getPort();
-  }
-}

+ 0 - 26
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientInstrumentationModule.java

@@ -1,26 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v1_1;
-
-import static java.util.Collections.singletonList;
-
-import com.google.auto.service.AutoService;
-import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
-import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
-import java.util.List;
-
-@AutoService(InstrumentationModule.class)
-public class JaxRsClientInstrumentationModule extends InstrumentationModule {
-
-  public JaxRsClientInstrumentationModule() {
-    super("jaxrs-client", "jaxrs-client-1.1");
-  }
-
-  @Override
-  public List<TypeInstrumentation> typeInstrumentations() {
-    return singletonList(new ClientHandlerInstrumentation());
-  }
-}

+ 0 - 56
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientSingletons.java

@@ -1,56 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v1_1;
-
-import com.sun.jersey.api.client.ClientRequest;
-import com.sun.jersey.api.client.ClientResponse;
-import io.opentelemetry.api.GlobalOpenTelemetry;
-import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder;
-import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
-import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientExperimentalMetrics;
-import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientMetrics;
-import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
-import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
-import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
-import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
-
-public class JaxRsClientSingletons {
-  private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jaxrs-client-1.1";
-
-  private static final Instrumenter<ClientRequest, ClientResponse> INSTRUMENTER;
-
-  static {
-    JaxRsClientHttpAttributesGetter httpAttributesGetter = new JaxRsClientHttpAttributesGetter();
-
-    InstrumenterBuilder<ClientRequest, ClientResponse> builder =
-        Instrumenter.<ClientRequest, ClientResponse>builder(
-                GlobalOpenTelemetry.get(),
-                INSTRUMENTATION_NAME,
-                HttpSpanNameExtractor.create(httpAttributesGetter))
-            .setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesGetter))
-            .addAttributesExtractor(
-                HttpClientAttributesExtractor.builder(httpAttributesGetter)
-                    .setCapturedRequestHeaders(CommonConfig.get().getClientRequestHeaders())
-                    .setCapturedResponseHeaders(CommonConfig.get().getClientResponseHeaders())
-                    .setKnownMethods(CommonConfig.get().getKnownHttpRequestMethods())
-                    .build())
-            .addAttributesExtractor(
-                PeerServiceAttributesExtractor.create(
-                    httpAttributesGetter, CommonConfig.get().getPeerServiceMapping()))
-            .addOperationMetrics(HttpClientMetrics.get());
-    if (CommonConfig.get().shouldEmitExperimentalHttpClientMetrics()) {
-      builder.addOperationMetrics(HttpClientExperimentalMetrics.get());
-    }
-    INSTRUMENTER = builder.buildClientInstrumenter(ClientRequestHeaderSetter.INSTANCE);
-  }
-
-  public static Instrumenter<ClientRequest, ClientResponse> instrumenter() {
-    return INSTRUMENTER;
-  }
-
-  private JaxRsClientSingletons() {}
-}

+ 1 - 1
settings.gradle.kts

@@ -285,7 +285,7 @@ include(":instrumentation:jaxrs:jaxrs-3.0:jaxrs-3.0-common:javaagent")
 include(":instrumentation:jaxrs:jaxrs-3.0:jaxrs-3.0-common:testing")
 include(":instrumentation:jaxrs:jaxrs-3.0:jaxrs-3.0-jersey-3.0:javaagent")
 include(":instrumentation:jaxrs:jaxrs-3.0:jaxrs-3.0-resteasy-6.0:javaagent")
-include(":instrumentation:jaxrs-client:jaxrs-client-1.1:javaagent")
+include(":instrumentation:jaxrs-client:jaxrs-client-1.1-testing")
 include(":instrumentation:jaxrs-client:jaxrs-client-2.0-testing")
 include(":instrumentation:jaxws:jaxws-2.0:javaagent")
 include(":instrumentation:jaxws:jaxws-2.0-arquillian-testing")