diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/OpenTelemetryInstrumentation.java index 7dc807dede..b4b5ef760d 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/OpenTelemetryInstrumentation.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/OpenTelemetryInstrumentation.java @@ -45,6 +45,9 @@ public class OpenTelemetryInstrumentation implements TypeInstrumentation { .and(takesArguments(1)) .and(takesArgument(0, named("application.io.opentelemetry.api.OpenTelemetry"))), OpenTelemetryInstrumentation.class.getName() + "$SetAdvice"); + transformer.applyAdviceToMethod( + isMethod().and(isStatic()).and(named("resetForTest")).and(takesArguments(0)), + OpenTelemetryInstrumentation.class.getName() + "$ResetForTestAdvice"); } @SuppressWarnings("unused") @@ -77,4 +80,19 @@ public class OpenTelemetryInstrumentation implements TypeInstrumentation { new Throwable()); } } + + @SuppressWarnings("unused") + public static class ResetForTestAdvice { + + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void onEnter() { + Logger.getLogger(application.io.opentelemetry.api.GlobalOpenTelemetry.class.getName()) + .log( + WARNING, + "You are currently using the OpenTelemetry Instrumentation Java Agent;" + + " all GlobalOpenTelemetry.resetForTest calls are ignored - the agent provides" + + " the global OpenTelemetry object used by your application.", + new Throwable()); + } + } }