Skip to content

Commit 30f4761

Browse files
authored
feat: support custom ClientResources in lettuce framework (#15470)
1 parent e900aee commit 30f4761

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,29 @@
55

66
package io.opentelemetry.javaagent.instrumentation.lettuce.v5_1;
77

8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
9+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
810
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
911
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1012
import static net.bytebuddy.matcher.ElementMatchers.isStatic;
1113
import static net.bytebuddy.matcher.ElementMatchers.named;
1214

13-
import io.lettuce.core.resource.DefaultClientResources;
15+
import io.lettuce.core.resource.ClientResources;
1416
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1517
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1618
import net.bytebuddy.asm.Advice;
1719
import net.bytebuddy.description.type.TypeDescription;
1820
import net.bytebuddy.matcher.ElementMatcher;
1921

20-
public class DefaultClientResourcesInstrumentation implements TypeInstrumentation {
22+
public class ClientResourcesInstrumentation implements TypeInstrumentation {
2123
@Override
2224
public ElementMatcher<TypeDescription> typeMatcher() {
23-
return named("io.lettuce.core.resource.DefaultClientResources");
25+
return implementsInterface(named("io.lettuce.core.resource.ClientResources"));
26+
}
27+
28+
@Override
29+
public ElementMatcher<ClassLoader> classLoaderOptimization() {
30+
return hasClassesNamed("io.lettuce.core.resource.ClientResources");
2431
}
2532

2633
@Override
@@ -34,7 +41,7 @@ public void transform(TypeTransformer transformer) {
3441
public static class BuilderAdvice {
3542

3643
@Advice.OnMethodExit(suppress = Throwable.class)
37-
public static void methodEnter(@Advice.Return DefaultClientResources.Builder builder) {
44+
public static void methodEnter(@Advice.Return ClientResources.Builder builder) {
3845
if (CompatibilityChecker.checkCompatible()) {
3946
builder.tracing(TracingHolder.TRACING);
4047
}

instrumentation/lettuce/lettuce-5.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_1/LettuceInstrumentationModule.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ public boolean isHelperClass(String className) {
3535

3636
@Override
3737
public List<TypeInstrumentation> typeInstrumentations() {
38-
return asList(
39-
new DefaultClientResourcesInstrumentation(), new LettuceAsyncCommandInstrumentation());
38+
return asList(new ClientResourcesInstrumentation(), new LettuceAsyncCommandInstrumentation());
4039
}
4140

4241
@Override

0 commit comments

Comments
 (0)