From a0e8c4e3d0694d47dc80e8df8f14a0674d4a9e84 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 3 Mar 2021 20:53:13 -0800 Subject: [PATCH 1/6] Rename more props to experimental --- examples/distro/gradle/instrumentation.gradle | 2 +- gradle/instrumentation.gradle | 2 +- .../io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java | 2 +- .../javaagent/tooling/AgentTracerProviderConfigurer.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/distro/gradle/instrumentation.gradle b/examples/distro/gradle/instrumentation.gradle index a178fe3bd57..aade4400299 100644 --- a/examples/distro/gradle/instrumentation.gradle +++ b/examples/distro/gradle/instrumentation.gradle @@ -40,7 +40,7 @@ shadowJar { tasks.withType(Test).configureEach { jvmArgs "-Dotel.javaagent.debug=true" jvmArgs "-javaagent:${configurations.testAgent.files.first().absolutePath}" - jvmArgs "-Dotel.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" + jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" jvmArgs "-Dinternal.testing.disable.global.library.ignores=true" // always run with the thread propagation debugger to help track down sporadic test failures jvmArgs "-Dotel.threadPropagationDebugger=true" diff --git a/gradle/instrumentation.gradle b/gradle/instrumentation.gradle index 0b6913f80cf..154335e051c 100644 --- a/gradle/instrumentation.gradle +++ b/gradle/instrumentation.gradle @@ -111,7 +111,7 @@ evaluationDependsOn(":testing:agent-for-testing") tasks.withType(Test).configureEach { jvmArgs "-Dotel.javaagent.debug=true" jvmArgs "-javaagent:${project(":testing:agent-for-testing").tasks.shadowJar.archiveFile.get().asFile.absolutePath}" - jvmArgs "-Dotel.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" + jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" jvmArgs "-Dinternal.testing.disable.global.library.ignores=true" // always run with the thread propagation debugger to help track down sporadic test failures jvmArgs "-Dotel.threadPropagationDebugger=true" diff --git a/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java b/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java index e37b247b4df..9323bbcca0e 100644 --- a/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java +++ b/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java @@ -27,7 +27,7 @@ public class AgentClassLoader extends URLClassLoader { } private static final String AGENT_INITIALIZER_JAR = - System.getProperty("otel.initializer.jar", ""); + System.getProperty("otel.javaagent.experimental.initializer.jar", ""); // Calling java.lang.instrument.Instrumentation#appendToBootstrapClassLoaderSearch // adds a jar to the bootstrap class lookup, but not to the resource lookup. diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java index a20dfe83f04..c8dcc46e414 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentTracerProviderConfigurer.java @@ -34,7 +34,7 @@ public class AgentTracerProviderConfigurer implements SdkTracerProviderConfigurer { private static final Logger log = LoggerFactory.getLogger(AgentTracerProviderConfigurer.class); - static final String EXPORTER_JAR_CONFIG = "otel.exporter.jar"; + static final String EXPORTER_JAR_CONFIG = "otel.javaagent.experimental.exporter.jar"; @Override public void configure(SdkTracerProviderBuilder sdkTracerProviderBuilder) { From f351b43f2e24a388f59ae62d1a4865f6f191ca55 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 3 Mar 2021 21:12:26 -0800 Subject: [PATCH 2/6] Rename more properties --- examples/distro/gradle/instrumentation.gradle | 8 ++++---- gradle/instrumentation.gradle | 8 ++++---- .../api/context/ContextPropagationDebug.java | 4 ++-- .../javaagent/kafka-clients-0.11-javaagent.gradle | 2 +- .../kafkaclients/KafkaClientsConfig.java | 3 ++- .../src/test/groovy/KafkaClientBaseTest.groovy | 2 +- .../javaagent/spring-batch-3.0-javaagent.gradle | 2 +- .../batch/SpringBatchInstrumentationConfig.java | 2 +- .../api/concurrent/ExecutorInstrumentationUtils.java | 2 +- .../javaagent/tooling/AgentInstaller.java | 6 +++--- .../javaagent/tooling/InstrumentationModule.java | 2 +- .../javaagent/tooling/TransformSafeLogger.java | 2 +- .../tooling/context/FieldBackedProvider.java | 2 +- .../tooling/matcher/GlobalIgnoresMatcher.java | 12 ++++++------ .../tooling/InstrumentationModuleTest.groovy | 4 ++-- .../integration-tests/integration-tests.gradle | 2 +- .../groovy/context/FieldInjectionDisabledTest.groovy | 2 +- 17 files changed, 33 insertions(+), 32 deletions(-) diff --git a/examples/distro/gradle/instrumentation.gradle b/examples/distro/gradle/instrumentation.gradle index aade4400299..43c3f4b880d 100644 --- a/examples/distro/gradle/instrumentation.gradle +++ b/examples/distro/gradle/instrumentation.gradle @@ -41,12 +41,12 @@ tasks.withType(Test).configureEach { jvmArgs "-Dotel.javaagent.debug=true" jvmArgs "-javaagent:${configurations.testAgent.files.first().absolutePath}" jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" - jvmArgs "-Dinternal.testing.disable.global.library.ignores=true" + jvmArgs "-Dotel.javaagent.internal.additional-library-ignores.enabled=false" // always run with the thread propagation debugger to help track down sporadic test failures - jvmArgs "-Dotel.threadPropagationDebugger=true" - jvmArgs "-Dotel.internal.failOnContextLeak=true" + jvmArgs "-Dotel.javaagent.experimental.thread-propagation-debugger.enabled=true" + jvmArgs "-Dotel.javaagent.internal.fail-on-context-leak=true" // prevent sporadic gradle deadlocks, see SafeLogger for more details - jvmArgs "-Dotel.internal.enableTransformSafeLogging=true" + jvmArgs "-Dotel.javaagent.internal.transform-safe-logging.enabled=true" dependsOn shadowJar diff --git a/gradle/instrumentation.gradle b/gradle/instrumentation.gradle index 154335e051c..9e9135d8de2 100644 --- a/gradle/instrumentation.gradle +++ b/gradle/instrumentation.gradle @@ -112,12 +112,12 @@ tasks.withType(Test).configureEach { jvmArgs "-Dotel.javaagent.debug=true" jvmArgs "-javaagent:${project(":testing:agent-for-testing").tasks.shadowJar.archiveFile.get().asFile.absolutePath}" jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" - jvmArgs "-Dinternal.testing.disable.global.library.ignores=true" + jvmArgs "-Dotel.javaagent.internal.additional-library-ignores.enabled=false" // always run with the thread propagation debugger to help track down sporadic test failures - jvmArgs "-Dotel.threadPropagationDebugger=true" - jvmArgs "-Dotel.internal.failOnContextLeak=true" + jvmArgs "-Dotel.javaagent.experimental.thread-propagation-debugger.enabled=true" + jvmArgs "-Dotel.javaagent.internal.fail-on-context-leak=true" // prevent sporadic gradle deadlocks, see SafeLogger for more details - jvmArgs "-Dotel.internal.enableTransformSafeLogging=true" + jvmArgs "-Dotel.javaagent.internal.transform-safe-logging.enabled=true" dependsOn shadowJar dependsOn ":testing:agent-for-testing:shadowJar" diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java index a53ce9f30f5..7609a0e57b1 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java @@ -22,9 +22,9 @@ public final class ContextPropagationDebug { ContextKey.named("thread-propagation-locations"); private static final boolean THREAD_PROPAGATION_DEBUGGER = - Boolean.getBoolean("otel.threadPropagationDebugger"); + Boolean.getBoolean("otel.javaagent.experimental.thread-propagation-debugger.enabled"); private static final boolean FAIL_ON_CONTEXT_LEAK = - Boolean.getBoolean("otel.internal.failOnContextLeak"); + Boolean.getBoolean("otel.javaagent.internal.fail-on-context-leak"); public static boolean isThreadPropagationDebuggerEnabled() { return THREAD_PROPAGATION_DEBUGGER; diff --git a/instrumentation/kafka-clients-0.11/javaagent/kafka-clients-0.11-javaagent.gradle b/instrumentation/kafka-clients-0.11/javaagent/kafka-clients-0.11-javaagent.gradle index b88a7ceef20..c89d14f4e5e 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/kafka-clients-0.11-javaagent.gradle +++ b/instrumentation/kafka-clients-0.11/javaagent/kafka-clients-0.11-javaagent.gradle @@ -42,5 +42,5 @@ test.finalizedBy(tasks.register("testPropagationDisabled", Test) { filter { includeTestsMatching 'KafkaClientPropagationDisabledTest' } - jvmArgs "-Dotel.instrumentation.kafka.client-propagation=false" + jvmArgs "-Dotel.instrumentation.kafka.client-propagation.enabled=false" }) diff --git a/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaClientsConfig.java b/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaClientsConfig.java index 3c11ee7b804..202e8b6e9d6 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaClientsConfig.java +++ b/instrumentation/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaClientsConfig.java @@ -10,7 +10,8 @@ public final class KafkaClientsConfig { public static boolean isPropagationEnabled() { - return Config.get().getBooleanProperty("otel.instrumentation.kafka.client-propagation", true); + return Config.get() + .getBooleanProperty("otel.instrumentation.kafka.client-propagation.enabled", true); } public static boolean captureExperimentalSpanAttributes() { diff --git a/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientBaseTest.groovy b/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientBaseTest.groovy index 4069735991a..c52a5832bb3 100644 --- a/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientBaseTest.groovy +++ b/instrumentation/kafka-clients-0.11/javaagent/src/test/groovy/KafkaClientBaseTest.groovy @@ -23,7 +23,7 @@ abstract class KafkaClientBaseTest extends AgentInstrumentationSpecification { protected static final SHARED_TOPIC = "shared.topic" private static final boolean propagationEnabled = Boolean.parseBoolean( - System.getProperty("otel.instrumentation.kafka.client-propagation", "true")) + System.getProperty("otel.instrumentation.kafka.client-propagation.enabled", "true")) @Rule KafkaEmbedded embeddedKafka = new KafkaEmbedded(1, true, SHARED_TOPIC) diff --git a/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle b/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle index b329fe59007..53a96a40dde 100644 --- a/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle +++ b/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle @@ -30,7 +30,7 @@ test.finalizedBy(tasks.register("testChunkRootSpan", Test) { filter { includeTestsMatching '*ChunkRootSpanTest' } - jvmArgs '-Dotel.instrumentation.spring-batch.chunk.root-span=true' + jvmArgs '-Dotel.instrumentation.spring-batch.chunk.new-trace=true' }).finalizedBy(tasks.register("testItemLevelSpan", Test) { filter { includeTestsMatching '*ItemLevelSpanTest' diff --git a/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java b/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java index 4ccb9ab9c20..a9d1f2ecb38 100644 --- a/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java +++ b/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java @@ -20,7 +20,7 @@ public final class SpringBatchInstrumentationConfig { Config.get().isInstrumentationPropertyEnabled(instrumentationNames(), "item.enabled", false); private static final boolean CREATE_ROOT_SPAN_FOR_CHUNK = Config.get() - .isInstrumentationPropertyEnabled(instrumentationNames(), "chunk.root-span", false); + .isInstrumentationPropertyEnabled(instrumentationNames(), "chunk.new-trace", false); public static List instrumentationNames() { return INSTRUMENTATION_NAMES; diff --git a/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java b/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java index 6ff1df13992..9fe2836c67e 100644 --- a/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java +++ b/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java @@ -29,7 +29,7 @@ public static boolean shouldAttachStateToTask(Object task) { Class enclosingClass = taskClass.getEnclosingClass(); // not much point in propagating root context - // plus it causes failures under otel.internal.failOnContextLeak=true + // plus it causes failures under otel.javaagent.internal.fail-on-context-leak=true return Context.current() != Context.root() // TODO Workaround for // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/787 diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java index 3e15fa68d48..1c94ffa1c33 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java @@ -56,8 +56,8 @@ public class AgentInstaller { // We set this system property when running the agent with unit tests to allow verifying that we // don't ignore libraries that we actually attempt to instrument. It means either the list is // wrong or a type matcher is. - private static final String DISABLE_GLOBAL_LIBRARY_IGNORES_FOR_TEST = - "internal.testing.disable.global.library.ignores"; + private static final String ADDITIONAL_LIBRARY_IGNORES_ENABLED = + "otel.javaagent.internal.additional-library-ignores.enabled"; private static final Map> CLASS_LOAD_CALLBACKS = new HashMap<>(); private static volatile Instrumentation INSTRUMENTATION; @@ -127,7 +127,7 @@ public static ResettableClassFileTransformer installBytebuddyAgent( ignoredAgentBuilder = ignoredAgentBuilder.or( globalIgnoresMatcher( - Config.get().getBooleanProperty(DISABLE_GLOBAL_LIBRARY_IGNORES_FOR_TEST, false), + Config.get().getBooleanProperty(ADDITIONAL_LIBRARY_IGNORES_ENABLED, true), ignoreMatcherProvider)); ignoredAgentBuilder = ignoredAgentBuilder.or(matchesConfiguredExcludes()); diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/InstrumentationModule.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/InstrumentationModule.java index e7cbd311a36..567b9122282 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/InstrumentationModule.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/InstrumentationModule.java @@ -330,6 +330,6 @@ protected Map contextStore() { } protected boolean defaultEnabled() { - return Config.get().getBooleanProperty("otel.instrumentation.default-enabled", true); + return Config.get().getBooleanProperty("otel.instrumentation.common.default-enabled", true); } } diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java index 083470fd7f4..b9fdd568d38 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java @@ -25,7 +25,7 @@ public class TransformSafeLogger { private static final boolean ENABLE_TRANSFORM_SAFE_LOGGING = - Boolean.getBoolean("otel.internal.enableTransformSafeLogging"); + Boolean.getBoolean("otel.javaagent.internal.transform-safe-logging.enabled"); private static final BlockingQueue logMessageQueue; diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/context/FieldBackedProvider.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/context/FieldBackedProvider.java index e3a26ba3d4f..8896ab78a15 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/context/FieldBackedProvider.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/context/FieldBackedProvider.java @@ -104,7 +104,7 @@ public class FieldBackedProvider implements InstrumentationContextProvider { } private static final boolean FIELD_INJECTION_ENABLED = - Config.get().getBooleanProperty("otel.javaagent.runtime.context.field.injection", true); + Config.get().getBooleanProperty("otel.javaagent.experimental.field-injection.enabled", true); private final Class instrumenterClass; private final ByteBuddy byteBuddy; diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/matcher/GlobalIgnoresMatcher.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/matcher/GlobalIgnoresMatcher.java index 5e3ff40684e..84683537741 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/matcher/GlobalIgnoresMatcher.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/matcher/GlobalIgnoresMatcher.java @@ -33,18 +33,18 @@ public class GlobalIgnoresMatcher Pattern.compile("com\\.mchange\\.v2\\.c3p0\\..*Proxy"); public static ElementMatcher.Junction globalIgnoresMatcher( - boolean skipAdditionalLibraryMatcher, IgnoreMatcherProvider ignoreMatcherProviders) { - return new GlobalIgnoresMatcher<>(skipAdditionalLibraryMatcher, ignoreMatcherProviders); + boolean additionalLibraryMatcher, IgnoreMatcherProvider ignoreMatcherProviders) { + return new GlobalIgnoresMatcher<>(additionalLibraryMatcher, ignoreMatcherProviders); } private final ElementMatcher additionalLibraryIgnoreMatcher = AdditionalLibraryIgnoresMatcher.additionalLibraryIgnoresMatcher(); - private final boolean skipAdditionalLibraryMatcher; + private final boolean additionalLibraryMatcher; private final IgnoreMatcherProvider ignoreMatcherProvider; private GlobalIgnoresMatcher( - boolean skipAdditionalLibraryMatcher, IgnoreMatcherProvider ignoreMatcherProvider) { - this.skipAdditionalLibraryMatcher = skipAdditionalLibraryMatcher; + boolean additionalLibraryMatcher, IgnoreMatcherProvider ignoreMatcherProvider) { + this.additionalLibraryMatcher = additionalLibraryMatcher; this.ignoreMatcherProvider = ignoreMatcherProvider; } @@ -194,7 +194,7 @@ public boolean matches(T target) { return true; } - if (!skipAdditionalLibraryMatcher && additionalLibraryIgnoreMatcher.matches(target)) { + if (additionalLibraryMatcher && additionalLibraryIgnoreMatcher.matches(target)) { return true; } diff --git a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/InstrumentationModuleTest.groovy b/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/InstrumentationModuleTest.groovy index 5d2dfac1ad9..fee1b93c062 100644 --- a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/InstrumentationModuleTest.groovy +++ b/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/InstrumentationModuleTest.groovy @@ -86,7 +86,7 @@ class InstrumentationModuleTest extends Specification { def "configure default sys prop as #value"() { setup: Config.INSTANCE = new ConfigBuilder().readProperties([ - "otel.instrumentation.default-enabled": String.valueOf(value) + "otel.instrumentation.common.default-enabled": String.valueOf(value) ]).build() def target = new TestInstrumentationModule(["test"]) target.instrument(new AgentBuilder.Default()) @@ -108,7 +108,7 @@ class InstrumentationModuleTest extends Specification { def "configure sys prop enabled for #value when default is disabled"() { setup: Config.INSTANCE = new ConfigBuilder().readProperties([ - "otel.instrumentation.default-enabled" : "false", + "otel.instrumentation.common.default-enabled" : "false", ("otel.instrumentation." + value + ".enabled"): "true" ]).build() diff --git a/testing-common/integration-tests/integration-tests.gradle b/testing-common/integration-tests/integration-tests.gradle index e6ae35ab8c2..e1a44bfebfa 100644 --- a/testing-common/integration-tests/integration-tests.gradle +++ b/testing-common/integration-tests/integration-tests.gradle @@ -40,6 +40,6 @@ test.finalizedBy(tasks.register("testFieldInjectionDisabled", Test) { filter { includeTestsMatching 'context.FieldInjectionDisabledTest' } - jvmArgs '-Dotel.javaagent.runtime.context.field.injection=false' + jvmArgs '-Dotel.javaagent.experimental.field-injection.enabled=false' jvmArgs '-Dotel.instrumentation.context-test-instrumentation.enabled=true' }) diff --git a/testing-common/integration-tests/src/test/groovy/context/FieldInjectionDisabledTest.groovy b/testing-common/integration-tests/src/test/groovy/context/FieldInjectionDisabledTest.groovy index 76347939517..ba9cfe29670 100644 --- a/testing-common/integration-tests/src/test/groovy/context/FieldInjectionDisabledTest.groovy +++ b/testing-common/integration-tests/src/test/groovy/context/FieldInjectionDisabledTest.groovy @@ -11,7 +11,7 @@ import java.lang.reflect.Field import library.DisabledKeyClass // this test is run using: -// -Dotel.javaagent.runtime.context.field.injection=false +// -Dotel.javaagent.experimental.field-injection.enabled=false // -Dotel.instrumentation.context-test-instrumentation.enabled=true // (see integration-tests.gradle) class FieldInjectionDisabledTest extends AgentInstrumentationSpecification { From 6ea744f24fee825eea91d8fcb6c5e9986ab6b62c Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 3 Mar 2021 22:47:00 -0800 Subject: [PATCH 3/6] Rename .internal to .testing --- gradle/instrumentation.gradle | 6 +++--- .../api/context/ContextPropagationDebug.java | 2 +- .../api/concurrent/ExecutorInstrumentationUtils.java | 2 +- .../io/opentelemetry/javaagent/tooling/AgentInstaller.java | 2 +- .../javaagent/tooling/TransformSafeLogger.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle/instrumentation.gradle b/gradle/instrumentation.gradle index 9e9135d8de2..66ab1d4b6a1 100644 --- a/gradle/instrumentation.gradle +++ b/gradle/instrumentation.gradle @@ -112,12 +112,12 @@ tasks.withType(Test).configureEach { jvmArgs "-Dotel.javaagent.debug=true" jvmArgs "-javaagent:${project(":testing:agent-for-testing").tasks.shadowJar.archiveFile.get().asFile.absolutePath}" jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" - jvmArgs "-Dotel.javaagent.internal.additional-library-ignores.enabled=false" + jvmArgs "-Dotel.javaagent.testing.additional-library-ignores.enabled=false" // always run with the thread propagation debugger to help track down sporadic test failures jvmArgs "-Dotel.javaagent.experimental.thread-propagation-debugger.enabled=true" - jvmArgs "-Dotel.javaagent.internal.fail-on-context-leak=true" + jvmArgs "-Dotel.javaagent.testing.fail-on-context-leak=true" // prevent sporadic gradle deadlocks, see SafeLogger for more details - jvmArgs "-Dotel.javaagent.internal.transform-safe-logging.enabled=true" + jvmArgs "-Dotel.javaagent.testing.transform-safe-logging.enabled=true" dependsOn shadowJar dependsOn ":testing:agent-for-testing:shadowJar" diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java index 7609a0e57b1..8b8f2da2d68 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/context/ContextPropagationDebug.java @@ -24,7 +24,7 @@ public final class ContextPropagationDebug { private static final boolean THREAD_PROPAGATION_DEBUGGER = Boolean.getBoolean("otel.javaagent.experimental.thread-propagation-debugger.enabled"); private static final boolean FAIL_ON_CONTEXT_LEAK = - Boolean.getBoolean("otel.javaagent.internal.fail-on-context-leak"); + Boolean.getBoolean("otel.javaagent.testing.fail-on-context-leak"); public static boolean isThreadPropagationDebuggerEnabled() { return THREAD_PROPAGATION_DEBUGGER; diff --git a/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java b/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java index 9fe2836c67e..4aac417704d 100644 --- a/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java +++ b/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java @@ -29,7 +29,7 @@ public static boolean shouldAttachStateToTask(Object task) { Class enclosingClass = taskClass.getEnclosingClass(); // not much point in propagating root context - // plus it causes failures under otel.javaagent.internal.fail-on-context-leak=true + // plus it causes failures under otel.javaagent.testing.fail-on-context-leak=true return Context.current() != Context.root() // TODO Workaround for // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/787 diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java index 1c94ffa1c33..7e5698bc4c1 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java @@ -57,7 +57,7 @@ public class AgentInstaller { // don't ignore libraries that we actually attempt to instrument. It means either the list is // wrong or a type matcher is. private static final String ADDITIONAL_LIBRARY_IGNORES_ENABLED = - "otel.javaagent.internal.additional-library-ignores.enabled"; + "otel.javaagent.testing.additional-library-ignores.enabled"; private static final Map> CLASS_LOAD_CALLBACKS = new HashMap<>(); private static volatile Instrumentation INSTRUMENTATION; diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java index b9fdd568d38..b1f98608098 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/TransformSafeLogger.java @@ -25,7 +25,7 @@ public class TransformSafeLogger { private static final boolean ENABLE_TRANSFORM_SAFE_LOGGING = - Boolean.getBoolean("otel.javaagent.internal.transform-safe-logging.enabled"); + Boolean.getBoolean("otel.javaagent.testing.transform-safe-logging.enabled"); private static final BlockingQueue logMessageQueue; From 8f84135074e2f59c02a438115743fe22570b276a Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Wed, 3 Mar 2021 22:47:20 -0800 Subject: [PATCH 4/6] Revert changes to examples distro --- examples/distro/gradle/instrumentation.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/distro/gradle/instrumentation.gradle b/examples/distro/gradle/instrumentation.gradle index 43c3f4b880d..a178fe3bd57 100644 --- a/examples/distro/gradle/instrumentation.gradle +++ b/examples/distro/gradle/instrumentation.gradle @@ -40,13 +40,13 @@ shadowJar { tasks.withType(Test).configureEach { jvmArgs "-Dotel.javaagent.debug=true" jvmArgs "-javaagent:${configurations.testAgent.files.first().absolutePath}" - jvmArgs "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" - jvmArgs "-Dotel.javaagent.internal.additional-library-ignores.enabled=false" + jvmArgs "-Dotel.initializer.jar=${shadowJar.archiveFile.get().asFile.absolutePath}" + jvmArgs "-Dinternal.testing.disable.global.library.ignores=true" // always run with the thread propagation debugger to help track down sporadic test failures - jvmArgs "-Dotel.javaagent.experimental.thread-propagation-debugger.enabled=true" - jvmArgs "-Dotel.javaagent.internal.fail-on-context-leak=true" + jvmArgs "-Dotel.threadPropagationDebugger=true" + jvmArgs "-Dotel.internal.failOnContextLeak=true" // prevent sporadic gradle deadlocks, see SafeLogger for more details - jvmArgs "-Dotel.javaagent.internal.transform-safe-logging.enabled=true" + jvmArgs "-Dotel.internal.enableTransformSafeLogging=true" dependsOn shadowJar From a0c6720fa99d80b2c9db423dd516f9d668d0d55c Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 4 Mar 2021 09:48:13 -0800 Subject: [PATCH 5/6] Move chunk.new-trace to experimental --- .../javaagent/spring-batch-3.0-javaagent.gradle | 2 +- .../spring/batch/SpringBatchInstrumentationConfig.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle b/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle index 53a96a40dde..f2fcdeef35e 100644 --- a/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle +++ b/instrumentation/spring/spring-batch-3.0/javaagent/spring-batch-3.0-javaagent.gradle @@ -30,7 +30,7 @@ test.finalizedBy(tasks.register("testChunkRootSpan", Test) { filter { includeTestsMatching '*ChunkRootSpanTest' } - jvmArgs '-Dotel.instrumentation.spring-batch.chunk.new-trace=true' + jvmArgs '-Dotel.instrumentation.spring-batch.experimental.chunk.new-trace=true' }).finalizedBy(tasks.register("testItemLevelSpan", Test) { filter { includeTestsMatching '*ItemLevelSpanTest' diff --git a/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java b/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java index a9d1f2ecb38..060c1a36332 100644 --- a/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java +++ b/instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/SpringBatchInstrumentationConfig.java @@ -20,7 +20,8 @@ public final class SpringBatchInstrumentationConfig { Config.get().isInstrumentationPropertyEnabled(instrumentationNames(), "item.enabled", false); private static final boolean CREATE_ROOT_SPAN_FOR_CHUNK = Config.get() - .isInstrumentationPropertyEnabled(instrumentationNames(), "chunk.new-trace", false); + .isInstrumentationPropertyEnabled( + instrumentationNames(), "experimental.chunk.new-trace", false); public static List instrumentationNames() { return INSTRUMENTATION_NAMES; From 25d764416cacdd795c929f34e3571786354bc68e Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 4 Mar 2021 10:07:49 -0800 Subject: [PATCH 6/6] Fix unrelated build issue --- .../apachecamel/SqsCamelTest.groovy | 56 +++++++++---------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/apachecamel/SqsCamelTest.groovy b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/apachecamel/SqsCamelTest.groovy index 3300ce1981c..a790ddfc35a 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/apachecamel/SqsCamelTest.groovy +++ b/instrumentation/apache-camel-2.20/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/apachecamel/SqsCamelTest.groovy @@ -36,19 +36,15 @@ class SqsCamelTest extends AgentInstrumentationSpecification { /** * Temporarily using emq instead of localstack till the latter supports AWS trace propagation * - sqs = new LocalStackContainer(DockerImageName.parse("localstack/localstack:latest")) - .withServices(LocalStackContainer.Service.SQS) - sqs.start() - sqsPort = sqs.getMappedPort(4566) + sqs = new LocalStackContainer(DockerImageName.parse("localstack/localstack:latest")) + .withServices(LocalStackContainer.Service.SQS) + sqs.start() + sqsPort = sqs.getMappedPort(4566) - def app = new SpringApplication(SqsConfig) - app.addInitializers(new ApplicationContextInitializer() { - @Override - void initialize(AbstractApplicationContext applicationContext) { - applicationContext.getBeanFactory().registerSingleton("localStack", sqs) - } - }) - server = app.run()**/ + def app = new SpringApplication(SqsConfig) + app.addInitializers(new ApplicationContextInitializer() {@Override + void initialize(AbstractApplicationContext applicationContext) {applicationContext.getBeanFactory().registerSingleton("localStack", sqs)}}) + server = app.run()**/ sqsPort = PortUtils.randomOpenPort() sqs = SQSRestServerBuilder.withPort(sqsPort).withInterface("localhost").start() @@ -105,7 +101,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "SendMessageRequest" + "aws.operation" "SendMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -124,7 +120,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -156,7 +152,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -177,7 +173,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "DeleteMessageRequest" + "aws.operation" "DeleteMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -198,7 +194,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -219,7 +215,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -240,7 +236,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -275,7 +271,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "SendMessageRequest" + "aws.operation" "SendMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -294,7 +290,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -326,7 +322,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -347,7 +343,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "DeleteMessageRequest" + "aws.operation" "DeleteMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -368,7 +364,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -389,7 +385,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -410,7 +406,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -449,7 +445,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "CreateQueueRequest" + "aws.operation" "CreateQueue" "aws.queue.name" "sqsCamelSeparateQueueTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -488,7 +484,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "SendMessageRequest" + "aws.operation" "SendMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelSeparateQueueTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -507,7 +503,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelSeparateQueueTest" "aws.service" "AmazonSQS" "http.flavor" "1.1" @@ -533,7 +529,7 @@ class SqsCamelTest extends AgentInstrumentationSpecification { attributes { "aws.agent" "java-aws-sdk" "aws.endpoint" "http://localhost:$sqsPort" - "aws.operation" "ReceiveMessageRequest" + "aws.operation" "ReceiveMessage" "aws.queue.url" "http://localhost:$sqsPort/queue/sqsCamelSeparateQueueTest" "aws.service" "AmazonSQS" "http.flavor" "1.1"