Skip to content

Commit 35c63a4

Browse files
author
Mateusz Rzeszutek
authored
Remove the 'noop API' feature (open-telemetry#6313)
* Remove the 'noop API' feature * remove noop api dep * fix tooling tests
1 parent 4d9bf3b commit 35c63a4

File tree

8 files changed

+16
-38
lines changed

8 files changed

+16
-38
lines changed

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77

88
import org.openjdk.jmh.annotations.Fork;
99

10-
@Fork(jvmArgsAppend = "-Dotel.javaagent.experimental.use-noop-api=true")
11-
public class ServletWithNoopApiBenchmark extends ServletBenchmark {}
10+
@Fork(jvmArgsAppend = "-Dotel.experimental.sdk.enabled=false")
11+
public class ServletWithSdkDisabledBenchmark extends ServletBenchmark {}

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ public interface AgentListener extends Ordered {
2222

2323
/**
2424
* Runs after instrumentations are added to {@link AgentBuilder} and after the agent is installed
25-
* on an {@link Instrumentation}. Not called if noop api enabled via {@code
26-
* otel.javaagent.experimental.use-noop-api}.
25+
* on an {@link Instrumentation}.
2726
*
2827
* @deprecated Implement {{@link #afterAgent(AutoConfiguredOpenTelemetrySdk)}} instead.
2928
*/
@@ -37,8 +36,7 @@ default void afterAgent(
3736

3837
/**
3938
* Runs after instrumentations are added to {@link AgentBuilder} and after the agent is installed
40-
* on an {@link Instrumentation}. Not called if noop api enabled via {@code
41-
* otel.javaagent.experimental.use-noop-api}.
39+
* on an {@link Instrumentation}.
4240
*/
4341
default void afterAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk) {
4442
afterAgent(Config.get(), autoConfiguredOpenTelemetrySdk);

javaagent-tooling/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ dependencies {
2727
implementation("io.opentelemetry:opentelemetry-extension-aws")
2828
implementation("io.opentelemetry:opentelemetry-extension-trace-propagators")
2929
implementation("io.opentelemetry:opentelemetry-sdk-extension-resources")
30-
implementation("io.opentelemetry:opentelemetry-extension-noop-api")
3130
implementation("io.opentelemetry:opentelemetry-sdk-extension-metric-incubator")
3231

3332
// Exporters with dependencies

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

+7-21
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@
1313
import static java.util.logging.Level.SEVERE;
1414
import static net.bytebuddy.matcher.ElementMatchers.any;
1515

16-
import io.opentelemetry.api.GlobalOpenTelemetry;
1716
import io.opentelemetry.context.Context;
1817
import io.opentelemetry.context.ContextStorage;
1918
import io.opentelemetry.context.Scope;
20-
import io.opentelemetry.extension.noopapi.NoopOpenTelemetry;
2119
import io.opentelemetry.instrumentation.api.config.Config;
2220
import io.opentelemetry.instrumentation.api.internal.EmbeddedInstrumentationProperties;
2321
import io.opentelemetry.javaagent.bootstrap.AgentClassLoader;
@@ -64,7 +62,6 @@ public class AgentInstaller {
6462
private static final Logger logger = Logger.getLogger(AgentInstaller.class.getName());
6563

6664
static final String JAVAAGENT_ENABLED_CONFIG = "otel.javaagent.enabled";
67-
static final String JAVAAGENT_NOOP_CONFIG = "otel.javaagent.experimental.use-noop-api";
6865

6966
// This property may be set to force synchronous AgentListener#afterAgent() execution: the
7067
// condition for delaying the AgentListener initialization is pretty broad and in case it covers
@@ -110,23 +107,14 @@ private static void installBytebuddyAgent(
110107

111108
// If noop OpenTelemetry is enabled, autoConfiguredSdk will be null and AgentListeners are not
112109
// called
113-
AutoConfiguredOpenTelemetrySdk autoConfiguredSdk = null;
114-
if (config.getBoolean(JAVAAGENT_NOOP_CONFIG, false)) {
115-
logger.info("Tracing and metrics are disabled because noop is enabled.");
116-
GlobalOpenTelemetry.set(NoopOpenTelemetry.getInstance());
117-
} else {
118-
autoConfiguredSdk = installOpenTelemetrySdk(config);
119-
}
110+
AutoConfiguredOpenTelemetrySdk autoConfiguredSdk = installOpenTelemetrySdk(config);
120111

121-
ConfigProperties sdkConfig = EmptyConfigProperties.INSTANCE;
122-
if (autoConfiguredSdk != null) {
123-
sdkConfig = autoConfiguredSdk.getConfig();
124-
InstrumentationConfig.internalInitializeConfig(new ConfigPropertiesBridge(sdkConfig));
125-
copyNecessaryConfigToSystemProperties(sdkConfig);
112+
ConfigProperties sdkConfig = autoConfiguredSdk.getConfig();
113+
InstrumentationConfig.internalInitializeConfig(new ConfigPropertiesBridge(sdkConfig));
114+
copyNecessaryConfigToSystemProperties(sdkConfig);
126115

127-
for (BeforeAgentListener agentListener : loadOrdered(BeforeAgentListener.class)) {
128-
agentListener.beforeAgent(autoConfiguredSdk);
129-
}
116+
for (BeforeAgentListener agentListener : loadOrdered(BeforeAgentListener.class)) {
117+
agentListener.beforeAgent(autoConfiguredSdk);
130118
}
131119

132120
AgentBuilder agentBuilder =
@@ -180,9 +168,7 @@ private static void installBytebuddyAgent(
180168
ResettableClassFileTransformer resettableClassFileTransformer = agentBuilder.installOn(inst);
181169
ClassFileTransformerHolder.setClassFileTransformer(resettableClassFileTransformer);
182170

183-
if (autoConfiguredSdk != null) {
184-
runAfterAgentListeners(agentListeners, autoConfiguredSdk);
185-
}
171+
runAfterAgentListeners(agentListeners, autoConfiguredSdk);
186172
}
187173

188174
private static void copyNecessaryConfigToSystemProperties(ConfigProperties config) {

javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/BeforeAgentListener.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
*/
1818
public interface BeforeAgentListener extends Ordered {
1919

20-
/**
21-
* Runs before {@link AgentBuilder} construction, before any instrumentation is added. Not called
22-
* if noop api enabled via {@code otel.javaagent.experimental.use-noop-api}.
23-
*/
20+
/** Runs before {@link AgentBuilder} construction, before any instrumentation is added. */
2421
void beforeAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetrySdk);
2522
}

javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java

-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ public class OpenTelemetryInstaller {
2727
* @return the {@link AutoConfiguredOpenTelemetrySdk}
2828
*/
2929
static AutoConfiguredOpenTelemetrySdk installOpenTelemetrySdk(Config config) {
30-
System.setProperty("io.opentelemetry.context.contextStorageProvider", "default");
31-
3230
AutoConfiguredOpenTelemetrySdkBuilder builder =
3331
AutoConfiguredOpenTelemetrySdk.builder()
3432
.setResultAsGlobal(true)

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
package io.opentelemetry.javaagent.tooling
77

88
import io.opentelemetry.api.GlobalOpenTelemetry
9-
import io.opentelemetry.extension.noopapi.NoopOpenTelemetry
9+
import io.opentelemetry.api.OpenTelemetry
1010
import io.opentelemetry.instrumentation.api.config.Config
1111
import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider
1212
import spock.lang.Specification
@@ -29,7 +29,7 @@ class OpenTelemetryInstallerTest extends Specification {
2929

3030
then:
3131
otelInstaller != null
32-
GlobalOpenTelemetry.getTracerProvider() != NoopOpenTelemetry.getInstance().getTracerProvider()
32+
GlobalOpenTelemetry.getTracerProvider() != OpenTelemetry.noop().getTracerProvider()
3333
}
3434

3535
}

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import java.util.jar.JarFile
1515
import static io.opentelemetry.smoketest.TestContainerManager.useWindowsContainers
1616

1717
@IgnoreIf({ useWindowsContainers() })
18-
class NoopApiSmokeTest extends SmokeTest {
18+
class SdkDisabledSmokeTest extends SmokeTest {
1919

2020
protected String getTargetImage(String jdk) {
2121
"ghcr.io/open-telemetry/opentelemetry-java-instrumentation/smoke-test-spring-boot:jdk$jdk-20211213.1570880324"
@@ -24,7 +24,7 @@ class NoopApiSmokeTest extends SmokeTest {
2424
@Override
2525
protected Map<String, String> getExtraEnv() {
2626
return [
27-
"OTEL_JAVAAGENT_EXPERIMENTAL_USE_NOOP_API": "true"
27+
"OTEL_EXPERIMENTAL_SDK_ENABLED": "false"
2828
]
2929
}
3030

0 commit comments

Comments
 (0)