Skip to content

Commit ea07470

Browse files
committed
chore: try to add custom client resource
Change-Id: I8db51ffb0b9d7e0cd5cd4b88c83105b6ee3aa850
1 parent 9b819af commit ea07470

File tree

2 files changed

+104
-2
lines changed

2 files changed

+104
-2
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

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

8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
89
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
910
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
1011
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@@ -24,6 +25,11 @@ public ElementMatcher<TypeDescription> typeMatcher() {
2425
return implementsInterface(named("io.lettuce.core.resource.ClientResources"));
2526
}
2627

28+
@Override
29+
public ElementMatcher<ClassLoader> classLoaderOptimization() {
30+
return hasClassesNamed("io.lettuce.core.resource.ClientResources");
31+
}
32+
2733
@Override
2834
public void transform(TypeTransformer transformer) {
2935
transformer.applyAdviceToMethod(

instrumentation/lettuce/lettuce-5.1/testing/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceClientTest.java

Lines changed: 98 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,27 @@
99

1010
import io.lettuce.core.RedisClient;
1111
import io.lettuce.core.api.StatefulRedisConnection;
12+
import io.lettuce.core.event.EventBus;
13+
import io.lettuce.core.event.EventPublisherOptions;
14+
import io.lettuce.core.metrics.CommandLatencyRecorder;
15+
import io.lettuce.core.resource.ClientResources;
1216
import io.lettuce.core.resource.DefaultClientResources;
17+
import io.lettuce.core.resource.Delay;
18+
import io.lettuce.core.resource.DnsResolver;
19+
import io.lettuce.core.resource.EventLoopGroupProvider;
20+
import io.lettuce.core.resource.NettyCustomizer;
21+
import io.lettuce.core.resource.SocketAddressResolver;
22+
import io.lettuce.core.tracing.Tracing;
23+
import io.netty.util.Timer;
24+
import io.netty.util.concurrent.EventExecutorGroup;
25+
import io.netty.util.concurrent.Future;
1326
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
1427
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1528
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
1629
import io.opentelemetry.sdk.trace.data.SpanData;
1730
import java.util.Arrays;
1831
import java.util.List;
32+
import java.util.concurrent.TimeUnit;
1933
import org.junit.jupiter.api.TestInstance;
2034
import org.junit.jupiter.api.extension.RegisterExtension;
2135
import org.slf4j.Logger;
@@ -27,10 +41,92 @@
2741
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2842
public abstract class AbstractLettuceClientTest {
2943

30-
protected static class CustomClientResources extends DefaultClientResources {
44+
protected static class CustomClientResources implements ClientResources {
45+
46+
private ClientResources delegate;
3147

3248
protected CustomClientResources(Builder builder) {
33-
super(builder);
49+
this.delegate = builder.build();
50+
}
51+
52+
@Override
53+
public Builder mutate() {
54+
return delegate.mutate();
55+
}
56+
57+
@Override
58+
public Future<Boolean> shutdown() {
59+
return delegate.shutdown();
60+
}
61+
62+
@Override
63+
public Future<Boolean> shutdown(long l, long l1, TimeUnit timeUnit) {
64+
return delegate.shutdown(l, l1, timeUnit);
65+
}
66+
67+
@Override
68+
public EventPublisherOptions commandLatencyPublisherOptions() {
69+
return delegate.commandLatencyPublisherOptions();
70+
}
71+
72+
@Override
73+
public CommandLatencyRecorder commandLatencyRecorder() {
74+
return delegate.commandLatencyRecorder();
75+
}
76+
77+
@Override
78+
public int computationThreadPoolSize() {
79+
return delegate.computationThreadPoolSize();
80+
}
81+
82+
@Override
83+
public DnsResolver dnsResolver() {
84+
return delegate.dnsResolver();
85+
}
86+
87+
@Override
88+
public EventBus eventBus() {
89+
return delegate.eventBus();
90+
}
91+
92+
@Override
93+
public EventLoopGroupProvider eventLoopGroupProvider() {
94+
return delegate.eventLoopGroupProvider();
95+
}
96+
97+
@Override
98+
public EventExecutorGroup eventExecutorGroup() {
99+
return delegate.eventExecutorGroup();
100+
}
101+
102+
@Override
103+
public int ioThreadPoolSize() {
104+
return delegate.ioThreadPoolSize();
105+
}
106+
107+
@Override
108+
public NettyCustomizer nettyCustomizer() {
109+
return delegate.nettyCustomizer();
110+
}
111+
112+
@Override
113+
public Delay reconnectDelay() {
114+
return delegate.reconnectDelay();
115+
}
116+
117+
@Override
118+
public SocketAddressResolver socketAddressResolver() {
119+
return delegate.socketAddressResolver();
120+
}
121+
122+
@Override
123+
public Timer timer() {
124+
return delegate.timer();
125+
}
126+
127+
@Override
128+
public Tracing tracing() {
129+
return delegate.tracing();
34130
}
35131
}
36132

0 commit comments

Comments
 (0)