瀏覽代碼

Less surprising behavior (#4349)

* Less surprising behavior
Trask Stalnaker 3 年之前
父節點
當前提交
d781995d0a
共有 14 個文件被更改,包括 29 次插入60 次删除
  1. 1 5
      instrumentation/aws-lambda-1.0/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/awslambda/v1_0/AwsLambdaSqsHandlerTest.groovy
  2. 1 5
      instrumentation/aws-lambda-1.0/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/awslambda/v1_0/AwsLambdaTest.groovy
  3. 1 2
      instrumentation/jaxws/jaxws-2.0/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/jaxws/v2_0/JaxWsAnnotationsTest.groovy
  4. 1 5
      instrumentation/jaxws/jaxws-2.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/v2_0/SoapProvider.java
  5. 3 6
      instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/JwsAnnotationsTest.groovy
  6. 0 2
      instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/ProxyInvocationHandler.java
  7. 1 5
      instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/WebServiceClass.java
  8. 1 5
      instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/WebServiceDefinitionInterface.java
  9. 1 5
      instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/WebServiceFromInterface.java
  10. 8 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/ignore/GlobalIgnoredTypesConfigurer.java
  11. 2 2
      javaagent/src/test/groovy/io/opentelemetry/javaagent/classloading/ClassLoadingTest.groovy
  12. 1 5
      javaagent/src/test/java/io/opentelemetry/javaagent/ClassToInstrument.java
  13. 8 0
      javaagent/src/test/java/io/opentelemetry/javaagent/ClassToInstrumentChild.java
  14. 0 12
      javaagent/src/test/java/io/opentelemetry/test/ClassToInstrumentChild.java

+ 1 - 5
instrumentation/aws-lambda-1.0/javaagent/src/test/groovy/io/opentelemetry/test/AwsLambdaSqsHandlerTest.groovy → instrumentation/aws-lambda-1.0/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/awslambda/v1_0/AwsLambdaSqsHandlerTest.groovy

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test
+package io.opentelemetry.javaagent.instrumentation.awslambda.v1_0
 
 import com.amazonaws.services.lambda.runtime.Context
 import com.amazonaws.services.lambda.runtime.RequestHandler
@@ -11,10 +11,6 @@ import com.amazonaws.services.lambda.runtime.events.SQSEvent
 import io.opentelemetry.instrumentation.awslambda.v1_0.AbstractAwsLambdaSqsHandlerTest
 import io.opentelemetry.instrumentation.test.AgentTestTrait
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 class AwsLambdaSqsHandlerTest extends AbstractAwsLambdaSqsHandlerTest implements AgentTestTrait {
 
   static class TestRequestHandler implements RequestHandler<SQSEvent, Void> {

+ 1 - 5
instrumentation/aws-lambda-1.0/javaagent/src/test/groovy/io/opentelemetry/test/AwsLambdaTest.groovy → instrumentation/aws-lambda-1.0/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/awslambda/v1_0/AwsLambdaTest.groovy

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test
+package io.opentelemetry.javaagent.instrumentation.awslambda.v1_0
 
 import com.amazonaws.services.lambda.runtime.Context
 import com.amazonaws.services.lambda.runtime.RequestHandler
@@ -11,10 +11,6 @@ import io.opentelemetry.instrumentation.awslambda.v1_0.AbstractAwsLambdaRequestH
 import io.opentelemetry.instrumentation.test.AgentTestTrait
 import io.opentelemetry.javaagent.testing.common.AgentTestingExporterAccess
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 class AwsLambdaTest extends AbstractAwsLambdaRequestHandlerTest implements AgentTestTrait {
 
   def cleanup() {

+ 1 - 2
instrumentation/jaxws/jaxws-2.0/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/jaxws/v2_0/JaxWsAnnotationsTest.groovy

@@ -7,7 +7,6 @@ package io.opentelemetry.javaagent.instrumentation.jaxws.v2_0
 
 import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes
-import io.opentelemetry.test.SoapProvider
 
 class JaxWsAnnotationsTest extends AgentInstrumentationSpecification {
 
@@ -21,7 +20,7 @@ class JaxWsAnnotationsTest extends AgentInstrumentationSpecification {
         span(0) {
           name "SoapProvider.invoke"
           attributes {
-            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.test.SoapProvider"
+            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.javaagent.instrumentation.jaxws.v2_0.SoapProvider"
             "${SemanticAttributes.CODE_FUNCTION.key}" "invoke"
           }
         }

+ 1 - 5
instrumentation/jaxws/jaxws-2.0/javaagent/src/test/java/io/opentelemetry/test/SoapProvider.java → instrumentation/jaxws/jaxws-2.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/v2_0/SoapProvider.java

@@ -3,14 +3,10 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test;
+package io.opentelemetry.javaagent.instrumentation.jaxws.v2_0;
 
 import javax.xml.ws.Provider;
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 public class SoapProvider implements Provider<SoapProvider.Message> {
 
   @Override

+ 3 - 6
instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/JwsAnnotationsTest.groovy

@@ -7,9 +7,6 @@ package io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1
 
 import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes
-import io.opentelemetry.test.WebServiceClass
-import io.opentelemetry.test.WebServiceDefinitionInterface
-import io.opentelemetry.test.WebServiceFromInterface
 
 import java.lang.reflect.Proxy
 
@@ -27,7 +24,7 @@ class JwsAnnotationsTest extends AgentInstrumentationSpecification {
         span(0) {
           name "WebServiceClass.doSomethingPublic"
           attributes {
-            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.test.WebServiceClass"
+            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1.WebServiceClass"
             "${SemanticAttributes.CODE_FUNCTION.key}" "doSomethingPublic"
           }
         }
@@ -47,7 +44,7 @@ class JwsAnnotationsTest extends AgentInstrumentationSpecification {
         span(0) {
           name "WebServiceFromInterface.partOfPublicInterface"
           attributes {
-            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.test.WebServiceFromInterface"
+            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1.WebServiceFromInterface"
             "${SemanticAttributes.CODE_FUNCTION.key}" "partOfPublicInterface"
           }
         }
@@ -71,7 +68,7 @@ class JwsAnnotationsTest extends AgentInstrumentationSpecification {
         span(0) {
           name "WebServiceFromInterface.partOfPublicInterface"
           attributes {
-            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.test.WebServiceFromInterface"
+            "${SemanticAttributes.CODE_NAMESPACE.key}" "io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1.WebServiceFromInterface"
             "${SemanticAttributes.CODE_FUNCTION.key}" "partOfPublicInterface"
           }
         }

+ 0 - 2
instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/ProxyInvocationHandler.java

@@ -5,8 +5,6 @@
 
 package io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1;
 
-import io.opentelemetry.test.WebServiceDefinitionInterface;
-import io.opentelemetry.test.WebServiceFromInterface;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 

+ 1 - 5
instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/test/WebServiceClass.java → instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/WebServiceClass.java

@@ -3,14 +3,10 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test;
+package io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1;
 
 import javax.jws.WebService;
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 // This is pure java to not have any groovy generated public method surprises
 @WebService
 public class WebServiceClass {

+ 1 - 5
instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/test/WebServiceDefinitionInterface.java → instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/WebServiceDefinitionInterface.java

@@ -3,14 +3,10 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test;
+package io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1;
 
 import javax.jws.WebService;
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 @WebService
 public interface WebServiceDefinitionInterface {
   void partOfPublicInterface();

+ 1 - 5
instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/test/WebServiceFromInterface.java → instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxws/jws/v1_1/WebServiceFromInterface.java

@@ -3,12 +3,8 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test;
+package io.opentelemetry.javaagent.instrumentation.jaxws.jws.v1_1;
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 public class WebServiceFromInterface implements WebServiceDefinitionInterface {
   @Override
   public void partOfPublicInterface() {}

+ 8 - 1
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/ignore/GlobalIgnoredTypesConfigurer.java

@@ -55,7 +55,14 @@ public class GlobalIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
     // clojure
     builder.ignoreClass("clojure.").ignoreClass("$fn__");
 
-    builder.ignoreClass("io.opentelemetry.javaagent.");
+    // all classes in the AgentClassLoader are ignored separately
+    // this is used to ignore agent classes that are in the bootstrap class loader
+    // the reason not to use "io.opentelemetry.javaagent." is so that javaagent instrumentation
+    // tests under "io.opentelemetry.javaagent." will still be instrumented
+    builder.ignoreClass("io.opentelemetry.javaagent.bootstrap.");
+    builder.ignoreClass("io.opentelemetry.javaagent.instrumentation.api.");
+    builder.ignoreClass("io.opentelemetry.javaagent.shaded.");
+    builder.ignoreClass("io.opentelemetry.javaagent.slf4j.");
 
     builder
         .ignoreClass("java.")

+ 2 - 2
javaagent/src/test/groovy/io/opentelemetry/javaagent/classloading/ClassLoadingTest.groovy

@@ -5,9 +5,9 @@
 
 package io.opentelemetry.javaagent.classloading
 
+import io.opentelemetry.javaagent.ClassToInstrument
+import io.opentelemetry.javaagent.ClassToInstrumentChild
 import io.opentelemetry.javaagent.util.GcUtils
-import io.opentelemetry.test.ClassToInstrument
-import io.opentelemetry.test.ClassToInstrumentChild
 import spock.lang.Specification
 
 import java.lang.ref.WeakReference

+ 1 - 5
javaagent/src/test/java/io/opentelemetry/test/ClassToInstrument.java → javaagent/src/test/java/io/opentelemetry/javaagent/ClassToInstrument.java

@@ -3,14 +3,10 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.test;
+package io.opentelemetry.javaagent;
 
 import io.opentracing.contrib.dropwizard.Trace;
 
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
 public class ClassToInstrument {
   @Trace
   public static void someMethod() {}

+ 8 - 0
javaagent/src/test/java/io/opentelemetry/javaagent/ClassToInstrumentChild.java

@@ -0,0 +1,8 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.javaagent;
+
+public class ClassToInstrumentChild extends ClassToInstrument {}

+ 0 - 12
javaagent/src/test/java/io/opentelemetry/test/ClassToInstrumentChild.java

@@ -1,12 +0,0 @@
-/*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package io.opentelemetry.test;
-
-/**
- * Note: this has to stay outside of 'io.opentelemetry.javaagent' package to be considered for
- * instrumentation
- */
-public class ClassToInstrumentChild extends ClassToInstrument {}