From 1ff51fb2a898661702f721fa46b6dffce6cfb8fe Mon Sep 17 00:00:00 2001 From: Samudraneel Dasgupta Date: Wed, 1 Dec 2021 21:54:13 +0530 Subject: [PATCH] Develop/rmi instrumentation (#4764) * Remove new top level client span check from UnicastRefInstrumentation.java * Instrument Remote instead of RemoteServer --- .../rmi/client/UnicastRefInstrumentation.java | 5 ----- .../rmi/server/RemoteServerInstrumentation.java | 8 ++++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/client/UnicastRefInstrumentation.java b/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/client/UnicastRefInstrumentation.java index 39636762d9..19d09e0d19 100644 --- a/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/client/UnicastRefInstrumentation.java +++ b/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/client/UnicastRefInstrumentation.java @@ -48,11 +48,6 @@ public class UnicastRefInstrumentation implements TypeInstrumentation { Context parentContext = Java8BytecodeBridge.currentContext(); - // TODO replace with client span check - this is a bit different condition though, can we - // remove it? - if (!Java8BytecodeBridge.spanFromContext(parentContext).getSpanContext().isValid()) { - return; - } if (!instrumenter().shouldStart(parentContext, method)) { return; } diff --git a/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/server/RemoteServerInstrumentation.java b/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/server/RemoteServerInstrumentation.java index 1331a31f56..2252b38acd 100644 --- a/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/server/RemoteServerInstrumentation.java +++ b/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/server/RemoteServerInstrumentation.java @@ -6,7 +6,7 @@ package io.opentelemetry.javaagent.instrumentation.rmi.server; import static io.opentelemetry.javaagent.bootstrap.rmi.ThreadLocalContext.THREAD_LOCAL_CONTEXT; -import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.extendsClass; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; import static io.opentelemetry.javaagent.instrumentation.rmi.server.RmiServerSingletons.instrumenter; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPublic; @@ -20,7 +20,7 @@ import io.opentelemetry.instrumentation.api.util.ClassAndMethod; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import io.opentelemetry.javaagent.instrumentation.api.CallDepth; -import java.rmi.server.RemoteServer; +import java.rmi.Remote; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -28,7 +28,7 @@ import net.bytebuddy.matcher.ElementMatcher; public class RemoteServerInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { - return extendsClass(named("java.rmi.server.RemoteServer")); + return implementsInterface(named("java.rmi.Remote")); } @Override @@ -50,7 +50,7 @@ public class RemoteServerInstrumentation implements TypeInstrumentation { @Advice.Local("otelContext") Context context, @Advice.Local("otelScope") Scope scope) { - callDepth = CallDepth.forClass(RemoteServer.class); + callDepth = CallDepth.forClass(Remote.class); if (callDepth.getAndIncrement() > 0) { return; }