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

Use ConfigProperties instead of Config in the agent code (#6322)

* Use ConfigProperties instead of Config in the agent code

* Fix merge conflict

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Mateusz Rzeszutek 2 жил өмнө
parent
commit
b917b3bf9c
40 өөрчлөгдсөн 123 нэмэгдсэн , 125 устгасан
  1. 1 1
      instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaIgnoredTypesConfigurer.java
  2. 2 1
      instrumentation/dropwizard/dropwizard-metrics-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardmetrics/DropwizardMetricsInstrumentationModule.java
  3. 1 1
      instrumentation/internal/internal-class-loader/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/classloader/ClassLoaderIgnoredTypesConfigurer.java
  4. 2 1
      instrumentation/internal/internal-class-loader/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/classloader/ClassLoaderInstrumentationModule.java
  5. 2 1
      instrumentation/internal/internal-eclipse-osgi-3.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/osgi/EclipseOsgiInstrumentationModule.java
  6. 2 1
      instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/LambdaInstrumentationModule.java
  7. 1 1
      instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ReflectionIgnoredTypesConfigurer.java
  8. 2 1
      instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ReflectionInstrumentationModule.java
  9. 2 1
      instrumentation/internal/internal-url-class-loader/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/urlclassloader/UrlClassLoaderInstrumentationModule.java
  10. 1 1
      instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcIgnoredTypesConfigurer.java
  11. 2 1
      instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/datasource/DataSourceInstrumentationModule.java
  12. 1 1
      instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsIgnoredTypesConfigurer.java
  13. 1 1
      instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttpIgnoredTypesConfigurer.java
  14. 1 1
      instrumentation/okhttp/okhttp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v3_0/OkHttp3IgnoredTypesConfigurer.java
  15. 1 1
      instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzIgnoredTypesConfigurer.java
  16. 1 1
      instrumentation/ratpack/ratpack-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/RatpackIgnoredTypesConfigurer.java
  17. 1 1
      instrumentation/rxjava/rxjava-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rxjava/v2_0/RxJava2IgnoredTypesConfigurer.java
  18. 2 1
      instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationModule.java
  19. 1 1
      instrumentation/spring/spring-boot-actuator-autoconfigure-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/actuator/SpringBootActuatorIgnoredTypesConfigurer.java
  20. 1 1
      instrumentation/spring/spring-integration-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/integration/SpringIntegrationIgnoredTypesConfigurer.java
  21. 1 1
      instrumentation/spring/spring-rabbit-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/rabbit/SpringRabbitIgnoredTypesConfigurer.java
  22. 3 3
      javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/ignore/IgnoredTypesConfigurer.java
  23. 12 0
      javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java
  24. 1 1
      javaagent-tooling/src/jmh/java/io/opentelemetry/javaagent/tooling/ignore/IgnoredTypesMatcherBenchmark.java
  25. 2 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentExtension.java
  26. 4 4
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java
  27. 10 12
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java
  28. 6 16
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/config/AgentConfig.java
  29. 3 2
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/FieldBackedImplementationInstaller.java
  30. 1 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/ignore/AdditionalLibraryIgnoredTypesConfigurer.java
  31. 1 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/ignore/GlobalIgnoredTypesConfigurer.java
  32. 1 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/ignore/UserExcludedClassesConfigurer.java
  33. 4 2
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/instrumentation/InstrumentationLoader.java
  34. 8 4
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/instrumentation/InstrumentationModuleInstaller.java
  35. 29 49
      javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/AgentConfigTest.java
  36. 2 2
      javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/ignore/UserExcludedClassesConfigurerTest.java
  37. 3 2
      muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/AgentCachingPoolStrategy.java
  38. 1 1
      testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/IgnoredTestTypesConfigurer.java
  39. 2 1
      testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/bytebuddy/TestAgentExtension.java
  40. 1 1
      testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/bytebuddy/TestAgentListener.java

+ 1 - 1
instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class AkkaIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // This is a Mailbox created by akka.dispatch.Dispatcher#createMailbox. We must not add
     // a context to it as context should only be carried by individual envelopes in the queue
     // of this mailbox.

+ 2 - 1
instrumentation/dropwizard/dropwizard-metrics-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardmetrics/DropwizardMetricsInstrumentationModule.java

@@ -12,6 +12,7 @@ import static net.bytebuddy.matcher.ElementMatchers.not;
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.List;
 import net.bytebuddy.matcher.ElementMatcher;
 
@@ -29,7 +30,7 @@ public class DropwizardMetricsInstrumentationModule extends InstrumentationModul
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // the Dropwizard metrics API does not have a concept of metric labels/tags/attributes, thus the
     // data produced by this integration might be of very low quality, depending on how the API is
     // used in the instrumented application

+ 1 - 1
instrumentation/internal/internal-class-loader/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/classloader/ClassLoaderIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class ClassLoaderIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     builder.allowClass("jdk.internal.loader.BuiltinClassLoader");
     builder.allowClass("sun.misc.Launcher$AppClassLoader");
   }

+ 2 - 1
instrumentation/internal/internal-class-loader/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/classloader/ClassLoaderInstrumentationModule.java

@@ -10,6 +10,7 @@ import static java.util.Arrays.asList;
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
@@ -19,7 +20,7 @@ public class ClassLoaderInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // internal instrumentations are always enabled by default
     return true;
   }

+ 2 - 1
instrumentation/internal/internal-eclipse-osgi-3.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/osgi/EclipseOsgiInstrumentationModule.java

@@ -10,6 +10,7 @@ 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 io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
@@ -19,7 +20,7 @@ public class EclipseOsgiInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // internal instrumentations are always enabled by default
     return true;
   }

+ 2 - 1
instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/LambdaInstrumentationModule.java

@@ -10,6 +10,7 @@ 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 io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.ArrayList;
 import java.util.List;
 import net.bytebuddy.utility.JavaModule;
@@ -21,7 +22,7 @@ public class LambdaInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // internal instrumentations are always enabled by default
     return true;
   }

+ 1 - 1
instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ReflectionIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class ReflectionIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     builder.allowClass("jdk.internal.reflect.Reflection");
     builder.allowClass("sun.reflect.Reflection");
     builder.allowClass("java.lang.Class");

+ 2 - 1
instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ReflectionInstrumentationModule.java

@@ -10,6 +10,7 @@ import static java.util.Arrays.asList;
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
@@ -19,7 +20,7 @@ public class ReflectionInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // internal instrumentations are always enabled by default
     return true;
   }

+ 2 - 1
instrumentation/internal/internal-url-class-loader/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/urlclassloader/UrlClassLoaderInstrumentationModule.java

@@ -10,6 +10,7 @@ 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 io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
@@ -19,7 +20,7 @@ public class UrlClassLoaderInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // internal instrumentations are always enabled by default
     return true;
   }

+ 1 - 1
instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class JdbcIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // see https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/5946
     builder.ignoreClass("org.jboss.jca.adapters.jdbc.");
   }

+ 2 - 1
instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/datasource/DataSourceInstrumentationModule.java

@@ -10,6 +10,7 @@ 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 io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.List;
 
 @AutoService(InstrumentationModule.class)
@@ -24,7 +25,7 @@ public class DataSourceInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     return false;
   }
 }

+ 1 - 1
instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class JmsIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // Avoid instrumenting internal OrderedExecutor worker class
     builder.ignoreTaskClass("org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$");
   }

+ 1 - 1
instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttpIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class OkHttpIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // OkHttp connection pool lazily initializes a long running task to detect expired
     // connections and should not itself be instrumented.
     builder.ignoreTaskClass("com.squareup.okhttp.ConnectionPool$");

+ 1 - 1
instrumentation/okhttp/okhttp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v3_0/OkHttp3IgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class OkHttp3IgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // OkHttp task runner is a lazily-initialized shared pool of continuously running threads
     // similar to an event loop. The submitted tasks themselves should already be
     // instrumented to allow async propagation.

+ 1 - 1
instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class QuartzIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // Quartz executes jobs themselves in a synchronous way, there's no reason to propagate context
     // between its scheduler threads.
     builder.ignoreTaskClass("org.quartz");

+ 1 - 1
instrumentation/ratpack/ratpack-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/RatpackIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class RatpackIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // Context is passed through Netty channels in Ratpack as executor instrumentation is
     // not suitable. As the context that would be propagated via executor would be
     // incorrect, skip the propagation. Not checking for concrete class names as this covers

+ 1 - 1
instrumentation/rxjava/rxjava-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rxjava/v2_0/RxJava2IgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class RxJava2IgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // ScheduledRunnable is a wrapper around a Runnable and doesn't itself need context.
     builder.ignoreTaskClass("io.reactivex.internal.schedulers.ScheduledRunnable");
   }

+ 2 - 1
instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationModule.java

@@ -19,6 +19,7 @@ import io.opentelemetry.javaagent.instrumentation.spring.batch.job.JobBuilderHel
 import io.opentelemetry.javaagent.instrumentation.spring.batch.job.JobFactoryBeanInstrumentation;
 import io.opentelemetry.javaagent.instrumentation.spring.batch.job.JobParserJobFactoryBeanInstrumentation;
 import io.opentelemetry.javaagent.instrumentation.spring.batch.step.StepBuilderHelperInstrumentation;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.Arrays;
 import java.util.List;
 import net.bytebuddy.matcher.ElementMatcher;
@@ -54,7 +55,7 @@ public class SpringBatchInstrumentationModule extends InstrumentationModule {
   }
 
   @Override
-  public boolean defaultEnabled() {
+  public boolean defaultEnabled(ConfigProperties config) {
     // TODO: replace this with an experimental flag
     return false;
   }

+ 1 - 1
instrumentation/spring/spring-boot-actuator-autoconfigure-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/actuator/SpringBootActuatorIgnoredTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class SpringBootActuatorIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     builder.allowClass("org.springframework.boot.autoconfigure.AutoConfigurationImportSelector");
   }
 }

+ 1 - 1
instrumentation/spring/spring-integration-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/integration/SpringIntegrationIgnoredTypesConfigurer.java

@@ -13,7 +13,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 @AutoService(IgnoredTypesConfigurer.class)
 public class SpringIntegrationIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // we don't instrument any messaging classes
     builder.ignoreClass("org.springframework.messaging");
   }

+ 1 - 1
instrumentation/spring/spring-rabbit-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/rabbit/SpringRabbitIgnoredTypesConfigurer.java

@@ -13,7 +13,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 @AutoService(IgnoredTypesConfigurer.class)
 public class SpringRabbitIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // contains a Runnable that servers as a worker that continuously reads messages from queue
     builder
         .ignoreClass("org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$")

+ 3 - 3
javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/ignore/IgnoredTypesConfigurer.java

@@ -23,20 +23,20 @@ public interface IgnoredTypesConfigurer extends Ordered {
    * Configure the passed {@code builder} and define which classes should be ignored when
    * instrumenting.
    *
-   * @deprecated Use {@link #configure(ConfigProperties, IgnoredTypesBuilder)} instead.
+   * @deprecated Use {@link #configure(IgnoredTypesBuilder, ConfigProperties)} instead.
    */
   @Deprecated
   default void configure(Config config, IgnoredTypesBuilder builder) {
     throw new UnsupportedOperationException(
         "This method is deprecated and will be removed in a future release;"
-            + " implement IgnoredTypesConfigurer#configure(ConfigProperties, IgnoredTypesBuilder) instead");
+            + " implement IgnoredTypesConfigurer#configure(IgnoredTypesBuilder, ConfigProperties) instead");
   }
 
   /**
    * Configure the passed {@code builder} and define which classes should be ignored when
    * instrumenting.
    */
-  default void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  default void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     configure(Config.get(), builder);
   }
 }

+ 12 - 0
javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java

@@ -11,6 +11,7 @@ import static net.bytebuddy.matcher.ElementMatchers.any;
 
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.javaagent.extension.Ordered;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -82,11 +83,22 @@ public abstract class InstrumentationModule implements Ordered {
   /**
    * Allows instrumentation modules to disable themselves by default, or to additionally disable
    * themselves on some other condition.
+   *
+   * @deprecated Use {@link #defaultEnabled(ConfigProperties)} instead.
    */
+  @Deprecated
   public boolean defaultEnabled() {
     return DEFAULT_ENABLED;
   }
 
+  /**
+   * Allows instrumentation modules to disable themselves by default, or to additionally disable
+   * themselves on some other condition.
+   */
+  public boolean defaultEnabled(ConfigProperties config) {
+    return defaultEnabled();
+  }
+
   /**
    * Instrumentation modules can override this method to specify additional packages (or classes)
    * that should be treated as "library instrumentation" packages. Classes from those packages will

+ 1 - 1
javaagent-tooling/src/jmh/java/io/opentelemetry/javaagent/tooling/ignore/IgnoredTypesMatcherBenchmark.java

@@ -34,7 +34,7 @@ public class IgnoredTypesMatcherBenchmark {
   static {
     IgnoredTypesBuilderImpl builder = new IgnoredTypesBuilderImpl();
     new AdditionalLibraryIgnoredTypesConfigurer()
-        .configure(EmptyConfigProperties.INSTANCE, builder);
+        .configure(builder, EmptyConfigProperties.INSTANCE);
     ignoredTypesMatcher = new IgnoredTypesMatcher(builder.buildIgnoredTypesTrie());
   }
 

+ 2 - 1
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentExtension.java

@@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.tooling;
 
 import io.opentelemetry.javaagent.extension.Ordered;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import net.bytebuddy.agent.builder.AgentBuilder;
 
 /**
@@ -25,7 +26,7 @@ public interface AgentExtension extends Ordered {
    * @return The customized agent. Note that this method MUST return a non-null {@link AgentBuilder}
    *     instance that contains all customizations defined in this extension.
    */
-  AgentBuilder extend(AgentBuilder agentBuilder);
+  AgentBuilder extend(AgentBuilder agentBuilder, ConfigProperties config);
 
   /**
    * Returns the name of the extension. It does not have to be unique, but it should be

+ 4 - 4
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java

@@ -132,7 +132,7 @@ public class AgentInstaller {
 
     agentBuilder = configureIgnoredTypes(sdkConfig, agentBuilder);
 
-    if (AgentConfig.get().isDebugModeEnabled()) {
+    if (AgentConfig.isDebugModeEnabled(sdkConfig)) {
       agentBuilder =
           agentBuilder
               .with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
@@ -150,7 +150,7 @@ public class AgentInstaller {
             new Object[] {agentExtension.extensionName(), agentExtension.getClass().getName()});
       }
       try {
-        agentBuilder = agentExtension.extend(agentBuilder);
+        agentBuilder = agentExtension.extend(agentBuilder, sdkConfig);
         numberOfLoadedExtensions++;
       } catch (Exception | LinkageError e) {
         logger.log(
@@ -202,7 +202,7 @@ public class AgentInstaller {
       ConfigProperties config, AgentBuilder agentBuilder) {
     IgnoredTypesBuilderImpl builder = new IgnoredTypesBuilderImpl();
     for (IgnoredTypesConfigurer configurer : loadOrdered(IgnoredTypesConfigurer.class)) {
-      configurer.configure(config, builder);
+      configurer.configure(builder, config);
     }
 
     Trie<Boolean> ignoredTasksTrie = builder.buildIgnoredTasksTrie();
@@ -236,7 +236,7 @@ public class AgentInstaller {
     // the application is already setting the global LogManager and AgentListener won't be able
     // to touch it due to class loader locking.
     boolean shouldForceSynchronousAgentListenersCalls =
-        Config.get().getBoolean(FORCE_SYNCHRONOUS_AGENT_LISTENERS_CONFIG, false);
+        autoConfiguredSdk.getConfig().getBoolean(FORCE_SYNCHRONOUS_AGENT_LISTENERS_CONFIG, false);
     boolean javaBefore9 = isJavaBefore9();
     if (!shouldForceSynchronousAgentListenersCalls && javaBefore9 && isAppUsingCustomLogManager()) {
       logger.fine("Custom JUL LogManager detected: delaying AgentListener#afterAgent() calls");

+ 10 - 12
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java

@@ -6,17 +6,16 @@
 package io.opentelemetry.javaagent.tooling;
 
 import static io.opentelemetry.javaagent.tooling.AgentInstaller.JAVAAGENT_ENABLED_CONFIG;
+import static java.util.Collections.emptyList;
 
 import com.google.auto.service.AutoService;
 import io.opentelemetry.exporter.logging.LoggingSpanExporter;
-import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.javaagent.tooling.config.AgentConfig;
 import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
 import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
 import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
 import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
-import java.util.Collections;
 
 @AutoService(AutoConfigurationCustomizerProvider.class)
 public class AgentTracerProviderConfigurer implements AutoConfigurationCustomizerProvider {
@@ -30,32 +29,31 @@ public class AgentTracerProviderConfigurer implements AutoConfigurationCustomize
 
   private static SdkTracerProviderBuilder configure(
       SdkTracerProviderBuilder sdkTracerProviderBuilder, ConfigProperties config) {
-    if (!Config.get().getBoolean(JAVAAGENT_ENABLED_CONFIG, true)) {
+    if (!config.getBoolean(JAVAAGENT_ENABLED_CONFIG, true)) {
       return sdkTracerProviderBuilder;
     }
 
     // Register additional thread details logging span processor
-    if (Config.get().getBoolean(ADD_THREAD_DETAILS, true)) {
+    if (config.getBoolean(ADD_THREAD_DETAILS, true)) {
       sdkTracerProviderBuilder.addSpanProcessor(new AddThreadDetailsSpanProcessor());
     }
 
-    maybeEnableLoggingExporter(sdkTracerProviderBuilder);
+    maybeEnableLoggingExporter(sdkTracerProviderBuilder, config);
 
     return sdkTracerProviderBuilder;
   }
 
-  private static void maybeEnableLoggingExporter(SdkTracerProviderBuilder builder) {
-    if (AgentConfig.get().isDebugModeEnabled()) {
+  private static void maybeEnableLoggingExporter(
+      SdkTracerProviderBuilder builder, ConfigProperties config) {
+    if (AgentConfig.isDebugModeEnabled(config)) {
       // don't install another instance if the user has already explicitly requested it.
-      if (loggingExporterIsNotAlreadyConfigured()) {
+      if (loggingExporterIsNotAlreadyConfigured(config)) {
         builder.addSpanProcessor(SimpleSpanProcessor.create(LoggingSpanExporter.create()));
       }
     }
   }
 
-  private static boolean loggingExporterIsNotAlreadyConfigured() {
-    return !Config.get()
-        .getList("otel.traces.exporter", Collections.emptyList())
-        .contains("logging");
+  private static boolean loggingExporterIsNotAlreadyConfigured(ConfigProperties config) {
+    return !config.getList("otel.traces.exporter", emptyList()).contains("logging");
   }
 }

+ 6 - 16
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/config/AgentConfig.java

@@ -5,24 +5,12 @@
 
 package io.opentelemetry.javaagent.tooling.config;
 
-import io.opentelemetry.instrumentation.api.config.Config;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 
 public final class AgentConfig {
 
-  private static final AgentConfig instance = new AgentConfig(Config.get());
-
-  private final Config config;
-
-  public static AgentConfig get() {
-    return instance;
-  }
-
-  public AgentConfig(Config config) {
-    this.config = config;
-  }
-
-  public boolean isInstrumentationEnabled(
-      Iterable<String> instrumentationNames, boolean defaultEnabled) {
+  public static boolean isInstrumentationEnabled(
+      ConfigProperties config, Iterable<String> instrumentationNames, boolean defaultEnabled) {
     // If default is enabled, we want to enable individually,
     // if default is disabled, we want to disable individually.
     boolean anyEnabled = defaultEnabled;
@@ -39,7 +27,9 @@ public final class AgentConfig {
     return anyEnabled;
   }
 
-  public boolean isDebugModeEnabled() {
+  public static boolean isDebugModeEnabled(ConfigProperties config) {
     return config.getBoolean("otel.javaagent.debug", false);
   }
+
+  private AgentConfig() {}
 }

+ 3 - 2
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/FieldBackedImplementationInstaller.java

@@ -11,9 +11,9 @@ import static net.bytebuddy.matcher.ElementMatchers.isAbstract;
 import static net.bytebuddy.matcher.ElementMatchers.named;
 import static net.bytebuddy.matcher.ElementMatchers.not;
 
-import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.javaagent.bootstrap.InstrumentationHolder;
 import io.opentelemetry.javaagent.bootstrap.VirtualFieldDetector;
+import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig;
 import io.opentelemetry.javaagent.tooling.HelperInjector;
 import io.opentelemetry.javaagent.tooling.TransformSafeLogger;
 import io.opentelemetry.javaagent.tooling.instrumentation.InstrumentationModuleInstaller;
@@ -62,7 +62,8 @@ final class FieldBackedImplementationInstaller implements VirtualFieldImplementa
       TransformSafeLogger.getLogger(FieldBackedImplementationInstaller.class);
 
   private static final boolean FIELD_INJECTION_ENABLED =
-      Config.get().getBoolean("otel.javaagent.experimental.field-injection.enabled", true);
+      InstrumentationConfig.get()
+          .getBoolean("otel.javaagent.experimental.field-injection.enabled", true);
 
   private final Class<?> instrumenterClass;
   private final VirtualFieldMappings virtualFieldMappings;

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

@@ -28,7 +28,7 @@ public class AdditionalLibraryIgnoredTypesConfigurer implements IgnoredTypesConf
       "otel.javaagent.testing.additional-library-ignores.enabled";
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     if (config.getBoolean(ADDITIONAL_LIBRARY_IGNORES_ENABLED, true)) {
       configure(builder);
     }

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

@@ -16,7 +16,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class GlobalIgnoredTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     configureIgnoredTypes(builder);
     configureIgnoredClassLoaders(builder);
     configureIgnoredTasks(builder);

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

@@ -20,7 +20,7 @@ public class UserExcludedClassesConfigurer implements IgnoredTypesConfigurer {
   static final String EXCLUDED_CLASSES_CONFIG = "otel.javaagent.exclude-classes";
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     List<String> excludedClasses = config.getList(EXCLUDED_CLASSES_CONFIG, emptyList());
     for (String excludedClass : excludedClasses) {
       excludedClass = excludedClass.trim();

+ 4 - 2
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/instrumentation/InstrumentationLoader.java

@@ -13,6 +13,7 @@ import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.bootstrap.InstrumentationHolder;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
 import io.opentelemetry.javaagent.tooling.AgentExtension;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.logging.Logger;
 import net.bytebuddy.agent.builder.AgentBuilder;
 
@@ -24,7 +25,7 @@ public class InstrumentationLoader implements AgentExtension {
       new InstrumentationModuleInstaller(InstrumentationHolder.getInstrumentation());
 
   @Override
-  public AgentBuilder extend(AgentBuilder agentBuilder) {
+  public AgentBuilder extend(AgentBuilder agentBuilder, ConfigProperties config) {
     int numberOfLoadedModules = 0;
     for (InstrumentationModule instrumentationModule : loadOrdered(InstrumentationModule.class)) {
       if (logger.isLoggable(FINE)) {
@@ -37,7 +38,8 @@ public class InstrumentationLoader implements AgentExtension {
             });
       }
       try {
-        agentBuilder = instrumentationModuleInstaller.install(instrumentationModule, agentBuilder);
+        agentBuilder =
+            instrumentationModuleInstaller.install(instrumentationModule, agentBuilder, config);
         numberOfLoadedModules++;
       } catch (Exception | LinkageError e) {
         logger.log(

+ 8 - 4
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/instrumentation/InstrumentationModuleInstaller.java

@@ -28,6 +28,7 @@ import io.opentelemetry.javaagent.tooling.muzzle.Mismatch;
 import io.opentelemetry.javaagent.tooling.muzzle.ReferenceMatcher;
 import io.opentelemetry.javaagent.tooling.util.IgnoreFailedTypeMatcher;
 import io.opentelemetry.javaagent.tooling.util.NamedMatcher;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.lang.instrument.Instrumentation;
 import java.security.ProtectionDomain;
 import java.util.List;
@@ -58,10 +59,13 @@ public final class InstrumentationModuleInstaller {
   }
 
   AgentBuilder install(
-      InstrumentationModule instrumentationModule, AgentBuilder parentAgentBuilder) {
-    if (!AgentConfig.get()
-        .isInstrumentationEnabled(
-            instrumentationModule.instrumentationNames(), instrumentationModule.defaultEnabled())) {
+      InstrumentationModule instrumentationModule,
+      AgentBuilder parentAgentBuilder,
+      ConfigProperties config) {
+    if (!AgentConfig.isInstrumentationEnabled(
+        config,
+        instrumentationModule.instrumentationNames(),
+        instrumentationModule.defaultEnabled(config))) {
       logger.log(
           FINE, "Instrumentation {0} is disabled", instrumentationModule.instrumentationName());
       return parentAgentBuilder;

+ 29 - 49
javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/AgentConfigTest.java

@@ -6,12 +6,11 @@
 package io.opentelemetry.javaagent.tooling.config;
 
 import static java.util.Arrays.asList;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
-import io.opentelemetry.instrumentation.api.config.Config;
-import java.util.List;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import java.util.TreeSet;
 import java.util.stream.Stream;
 import org.junit.jupiter.api.extension.ExtensionContext;
@@ -22,60 +21,41 @@ import org.junit.jupiter.params.provider.ArgumentsSource;
 
 class AgentConfigTest {
 
-  @ParameterizedTest
-  @ArgumentsSource(AgentDebugParams.class)
-  void shouldCheckIfAgentDebugModeIsEnabled(String propertyValue, boolean expected) {
-    Config config = Config.builder().addProperty("otel.javaagent.debug", propertyValue).build();
-    AgentConfig agentConfig = new AgentConfig(config);
-
-    assertEquals(expected, agentConfig.isDebugModeEnabled());
-  }
-
-  private static class AgentDebugParams implements ArgumentsProvider {
-    @Override
-    public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
-      return Stream.of(
-          Arguments.of("true", true), Arguments.of("blather", false), Arguments.of(null, false));
-    }
-  }
-
-  @ParameterizedTest
+  @ParameterizedTest(name = "isInstrumentationEnabled({0}) = {4}")
   @ArgumentsSource(InstrumentationEnabledParams.class)
-  void shouldCheckIfInstrumentationIsEnabled(
-      List<String> names, boolean defaultEnabled, boolean expected) {
-    Config config =
-        Config.builder()
-            .addProperty("otel.instrumentation.order.enabled", "true")
-            .addProperty("otel.instrumentation.test-prop.enabled", "true")
-            .addProperty("otel.instrumentation.disabled-prop.enabled", "false")
-            .addProperty("otel.instrumentation.test-env.enabled", "true")
-            .addProperty("otel.instrumentation.disabled-env.enabled", "false")
-            .build();
-    AgentConfig agentConfig = new AgentConfig(config);
+  void testIsInstrumentationEnabled(
+      @SuppressWarnings("unused") String description,
+      boolean firstEnabled,
+      boolean secondEnabled,
+      boolean defaultEnabled,
+      boolean expected) {
+
+    ConfigProperties config = mock(ConfigProperties.class);
+    when(config.getBoolean("otel.instrumentation.first.enabled", defaultEnabled))
+        .thenReturn(firstEnabled);
+    when(config.getBoolean("otel.instrumentation.second.enabled", defaultEnabled))
+        .thenReturn(secondEnabled);
 
     assertEquals(
-        expected, agentConfig.isInstrumentationEnabled(new TreeSet<>(names), defaultEnabled));
+        expected,
+        AgentConfig.isInstrumentationEnabled(
+            config, new TreeSet<>(asList("first", "second")), defaultEnabled));
   }
 
   private static class InstrumentationEnabledParams implements ArgumentsProvider {
+
     @Override
     public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
       return Stream.of(
-          Arguments.of(emptyList(), true, true),
-          Arguments.of(emptyList(), false, false),
-          Arguments.of(singletonList("invalid"), true, true),
-          Arguments.of(singletonList("invalid"), false, false),
-          Arguments.of(singletonList("test-prop"), false, true),
-          Arguments.of(singletonList("test-env"), false, true),
-          Arguments.of(singletonList("disabled-prop"), true, false),
-          Arguments.of(singletonList("disabled-env"), true, false),
-          Arguments.of(asList("other", "test-prop"), false, true),
-          Arguments.of(asList("other", "test-env"), false, true),
-          Arguments.of(singletonList("order"), false, true),
-          Arguments.of(asList("test-prop", "disabled-prop"), false, true),
-          Arguments.of(asList("disabled-env", "test-env"), false, true),
-          Arguments.of(asList("test-prop", "disabled-prop"), true, false),
-          Arguments.of(asList("disabled-env", "test-env"), true, false));
+          Arguments.of(
+              "enabled by default, both instrumentations are off", false, false, true, false),
+          Arguments.of("enabled by default, one instrumentation is on", true, false, true, false),
+          Arguments.of("enabled by default, both instrumentations are on", true, true, true, true),
+          Arguments.of(
+              "disabled by default, both instrumentations are off", false, false, false, false),
+          Arguments.of("disabled by default, one instrumentation is on", true, false, false, true),
+          Arguments.of(
+              "disabled by default, both instrumentation are on", true, true, false, true));
     }
   }
 }

+ 2 - 2
javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/ignore/UserExcludedClassesConfigurerTest.java

@@ -31,7 +31,7 @@ class UserExcludedClassesConfigurerTest {
   @Test
   void shouldAddNothingToBuilderWhenPropertyIsEmpty() {
     // when
-    underTest.configure(config, builder);
+    underTest.configure(builder, config);
 
     // then
     verifyNoInteractions(builder);
@@ -45,7 +45,7 @@ class UserExcludedClassesConfigurerTest {
             asList("com.example.IgnoredClass", "com.example.ignored.*", "com.another_ignore"));
 
     // when
-    underTest.configure(config, builder);
+    underTest.configure(builder, config);
 
     // then
     verify(builder).ignoreClass("com.example.IgnoredClass");

+ 3 - 2
muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/AgentCachingPoolStrategy.java

@@ -5,10 +5,10 @@
 
 package io.opentelemetry.javaagent.tooling.muzzle;
 
-import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.api.internal.cache.Cache;
 import io.opentelemetry.javaagent.bootstrap.InstrumentationHolder;
 import io.opentelemetry.javaagent.bootstrap.VirtualFieldAccessorMarker;
+import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig;
 import java.lang.instrument.Instrumentation;
 import java.lang.ref.WeakReference;
 import java.lang.reflect.Method;
@@ -52,7 +52,8 @@ public class AgentCachingPoolStrategy implements AgentBuilder.PoolStrategy {
   // others to avoid creation of synthetic accessors
 
   private static final boolean REFLECTION_ENABLED =
-      Config.get().getBoolean("otel.instrumentation.internal-reflection.enabled", true);
+      InstrumentationConfig.get()
+          .getBoolean("otel.instrumentation.internal-reflection.enabled", true);
   private static final Method findLoadedClassMethod = getFindLoadedClassMethod();
 
   static final int TYPE_CAPACITY = 64;

+ 1 - 1
testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/IgnoredTestTypesConfigurer.java

@@ -14,7 +14,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 public class IgnoredTestTypesConfigurer implements IgnoredTypesConfigurer {
 
   @Override
-  public void configure(ConfigProperties config, IgnoredTypesBuilder builder) {
+  public void configure(IgnoredTypesBuilder builder, ConfigProperties config) {
     // we don't want to instrument auto-generated mocks
     builder
         .ignoreClass("org.mockito")

+ 2 - 1
testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/bytebuddy/TestAgentExtension.java

@@ -7,13 +7,14 @@ package io.opentelemetry.javaagent.testing.bytebuddy;
 
 import com.google.auto.service.AutoService;
 import io.opentelemetry.javaagent.tooling.AgentExtension;
+import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import net.bytebuddy.agent.builder.AgentBuilder;
 
 @AutoService(AgentExtension.class)
 public class TestAgentExtension implements AgentExtension {
 
   @Override
-  public AgentBuilder extend(AgentBuilder agentBuilder) {
+  public AgentBuilder extend(AgentBuilder agentBuilder, ConfigProperties config) {
     return agentBuilder.with(TestAgentListener.INSTANCE);
   }
 

+ 1 - 1
testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/bytebuddy/TestAgentListener.java

@@ -57,7 +57,7 @@ public class TestAgentListener implements AgentBuilder.Listener {
           || configurer instanceof GlobalIgnoredTypesConfigurer) {
         continue;
       }
-      configurer.configure(EmptyConfigProperties.INSTANCE, builder);
+      configurer.configure(builder, EmptyConfigProperties.INSTANCE);
     }
     return builder.buildIgnoredTypesTrie();
   }