Prechádzať zdrojové kódy

Remove the 'noop API' feature (#6313)

* Remove the 'noop API' feature

* remove noop api dep

* fix tooling tests
Mateusz Rzeszutek 2 rokov pred
rodič
commit
35c63a4184

+ 2 - 2
benchmark-overhead-jmh/src/jmh/java/io/opentelemetry/javaagent/benchmark/servlet/ServletWithNoopApiBenchmark.java → benchmark-overhead-jmh/src/jmh/java/io/opentelemetry/javaagent/benchmark/servlet/ServletWithSdkDisabledBenchmark.java

@@ -7,5 +7,5 @@ package io.opentelemetry.javaagent.benchmark.servlet;
 
 import org.openjdk.jmh.annotations.Fork;
 
-@Fork(jvmArgsAppend = "-Dotel.javaagent.experimental.use-noop-api=true")
-public class ServletWithNoopApiBenchmark extends ServletBenchmark {}
+@Fork(jvmArgsAppend = "-Dotel.experimental.sdk.enabled=false")
+public class ServletWithSdkDisabledBenchmark extends ServletBenchmark {}

+ 2 - 4
javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/AgentListener.java

@@ -22,8 +22,7 @@ public interface AgentListener extends Ordered {
 
   /**
    * Runs after instrumentations are added to {@link AgentBuilder} and after the agent is installed
-   * on an {@link Instrumentation}. Not called if noop api enabled via {@code
-   * otel.javaagent.experimental.use-noop-api}.
+   * on an {@link Instrumentation}.
    *
    * @deprecated Implement {{@link #afterAgent(AutoConfiguredOpenTelemetrySdk)}} instead.
    */
@@ -37,8 +36,7 @@ public interface AgentListener extends Ordered {
 
   /**
    * Runs after instrumentations are added to {@link AgentBuilder} and after the agent is installed
-   * on an {@link Instrumentation}. Not called if noop api enabled via {@code
-   * otel.javaagent.experimental.use-noop-api}.
+   * on an {@link Instrumentation}.
    */
   default void afterAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk) {
     afterAgent(Config.get(), autoConfiguredOpenTelemetrySdk);

+ 0 - 1
javaagent-tooling/build.gradle.kts

@@ -27,7 +27,6 @@ dependencies {
   implementation("io.opentelemetry:opentelemetry-extension-aws")
   implementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
   implementation("io.opentelemetry:opentelemetry-sdk-extension-resources")
-  implementation("io.opentelemetry:opentelemetry-extension-noop-api")
   implementation("io.opentelemetry:opentelemetry-sdk-extension-metric-incubator")
 
   // Exporters with dependencies

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

@@ -13,11 +13,9 @@ import static java.util.logging.Level.FINE;
 import static java.util.logging.Level.SEVERE;
 import static net.bytebuddy.matcher.ElementMatchers.any;
 
-import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.ContextStorage;
 import io.opentelemetry.context.Scope;
-import io.opentelemetry.extension.noopapi.NoopOpenTelemetry;
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.api.internal.EmbeddedInstrumentationProperties;
 import io.opentelemetry.javaagent.bootstrap.AgentClassLoader;
@@ -64,7 +62,6 @@ public class AgentInstaller {
   private static final Logger logger = Logger.getLogger(AgentInstaller.class.getName());
 
   static final String JAVAAGENT_ENABLED_CONFIG = "otel.javaagent.enabled";
-  static final String JAVAAGENT_NOOP_CONFIG = "otel.javaagent.experimental.use-noop-api";
 
   // This property may be set to force synchronous AgentListener#afterAgent() execution: the
   // condition for delaying the AgentListener initialization is pretty broad and in case it covers
@@ -110,23 +107,14 @@ public class AgentInstaller {
 
     // If noop OpenTelemetry is enabled, autoConfiguredSdk will be null and AgentListeners are not
     // called
-    AutoConfiguredOpenTelemetrySdk autoConfiguredSdk = null;
-    if (config.getBoolean(JAVAAGENT_NOOP_CONFIG, false)) {
-      logger.info("Tracing and metrics are disabled because noop is enabled.");
-      GlobalOpenTelemetry.set(NoopOpenTelemetry.getInstance());
-    } else {
-      autoConfiguredSdk = installOpenTelemetrySdk(config);
-    }
+    AutoConfiguredOpenTelemetrySdk autoConfiguredSdk = installOpenTelemetrySdk(config);
 
-    ConfigProperties sdkConfig = EmptyConfigProperties.INSTANCE;
-    if (autoConfiguredSdk != null) {
-      sdkConfig = autoConfiguredSdk.getConfig();
-      InstrumentationConfig.internalInitializeConfig(new ConfigPropertiesBridge(sdkConfig));
-      copyNecessaryConfigToSystemProperties(sdkConfig);
+    ConfigProperties sdkConfig = autoConfiguredSdk.getConfig();
+    InstrumentationConfig.internalInitializeConfig(new ConfigPropertiesBridge(sdkConfig));
+    copyNecessaryConfigToSystemProperties(sdkConfig);
 
-      for (BeforeAgentListener agentListener : loadOrdered(BeforeAgentListener.class)) {
-        agentListener.beforeAgent(autoConfiguredSdk);
-      }
+    for (BeforeAgentListener agentListener : loadOrdered(BeforeAgentListener.class)) {
+      agentListener.beforeAgent(autoConfiguredSdk);
     }
 
     AgentBuilder agentBuilder =
@@ -180,9 +168,7 @@ public class AgentInstaller {
     ResettableClassFileTransformer resettableClassFileTransformer = agentBuilder.installOn(inst);
     ClassFileTransformerHolder.setClassFileTransformer(resettableClassFileTransformer);
 
-    if (autoConfiguredSdk != null) {
-      runAfterAgentListeners(agentListeners, autoConfiguredSdk);
-    }
+    runAfterAgentListeners(agentListeners, autoConfiguredSdk);
   }
 
   private static void copyNecessaryConfigToSystemProperties(ConfigProperties config) {

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

@@ -17,9 +17,6 @@ import net.bytebuddy.agent.builder.AgentBuilder;
  */
 public interface BeforeAgentListener extends Ordered {
 
-  /**
-   * Runs before {@link AgentBuilder} construction, before any instrumentation is added. Not called
-   * if noop api enabled via {@code otel.javaagent.experimental.use-noop-api}.
-   */
+  /** Runs before {@link AgentBuilder} construction, before any instrumentation is added. */
   void beforeAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk);
 }

+ 0 - 2
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java

@@ -27,8 +27,6 @@ public class OpenTelemetryInstaller {
    * @return the {@link AutoConfiguredOpenTelemetrySdk}
    */
   static AutoConfiguredOpenTelemetrySdk installOpenTelemetrySdk(Config config) {
-    System.setProperty("io.opentelemetry.context.contextStorageProvider", "default");
-
     AutoConfiguredOpenTelemetrySdkBuilder builder =
         AutoConfiguredOpenTelemetrySdk.builder()
             .setResultAsGlobal(true)

+ 2 - 2
javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy

@@ -6,7 +6,7 @@
 package io.opentelemetry.javaagent.tooling
 
 import io.opentelemetry.api.GlobalOpenTelemetry
-import io.opentelemetry.extension.noopapi.NoopOpenTelemetry
+import io.opentelemetry.api.OpenTelemetry
 import io.opentelemetry.instrumentation.api.config.Config
 import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider
 import spock.lang.Specification
@@ -29,7 +29,7 @@ class OpenTelemetryInstallerTest extends Specification {
 
     then:
     otelInstaller != null
-    GlobalOpenTelemetry.getTracerProvider() != NoopOpenTelemetry.getInstance().getTracerProvider()
+    GlobalOpenTelemetry.getTracerProvider() != OpenTelemetry.noop().getTracerProvider()
   }
 
 }

+ 2 - 2
smoke-tests/src/test/groovy/io/opentelemetry/smoketest/NoopApiSmokeTest.groovy → smoke-tests/src/test/groovy/io/opentelemetry/smoketest/SdkDisabledSmokeTest.groovy

@@ -15,7 +15,7 @@ import java.util.jar.JarFile
 import static io.opentelemetry.smoketest.TestContainerManager.useWindowsContainers
 
 @IgnoreIf({ useWindowsContainers() })
-class NoopApiSmokeTest extends SmokeTest {
+class SdkDisabledSmokeTest extends SmokeTest {
 
   protected String getTargetImage(String jdk) {
     "ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk$jdk-20211213.1570880324"
@@ -24,7 +24,7 @@ class NoopApiSmokeTest extends SmokeTest {
   @Override
   protected Map<String, String> getExtraEnv() {
     return [
-      "OTEL_JAVAAGENT_EXPERIMENTAL_USE_NOOP_API": "true"
+      "OTEL_EXPERIMENTAL_SDK_ENABLED": "false"
     ]
   }