Skip to content

Commit 677e9da

Browse files
authored
Fine tune async propagation for lettuce 5 (#11607)
Fine tune async propagation for lettuce 5 suggestions simplify the first version remove netty promise from tests Rework the implementation Co-authored-by: andrea.marziali <andrea.marziali@datadoghq.com>
1 parent 5adf6e3 commit 677e9da

2 files changed

Lines changed: 6 additions & 8 deletions

File tree

dd-java-agent/instrumentation/java/java-concurrent/java-concurrent-1.8/src/main/java/datadog/trace/instrumentation/java/concurrent/AsyncPropagatingDisableInstrumentation.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public AsyncPropagatingDisableInstrumentation() {
4949
named("io.reactivex.internal.schedulers.AbstractDirectTask");
5050
private static final ElementMatcher<TypeDescription> JAVA_HTTP_CLIENT =
5151
extendsClass(named("java.net.http.HttpClient"));
52+
private static final String LETTUCE_HANDSHAKE_HANDLER =
53+
"io.lettuce.core.protocol.RedisHandshakeHandler";
5254

5355
@Override
5456
public boolean onlyMatchKnownTypes() {
@@ -83,7 +85,8 @@ public String[] knownMatchingTypes() {
8385
"org.apache.activemq.broker.TransactionBroker",
8486
"com.mongodb.internal.connection.DefaultConnectionPool$AsyncWorkManager",
8587
"io.reactivex.internal.schedulers.AbstractDirectTask",
86-
"jdk.internal.net.http.HttpClientImpl"
88+
"jdk.internal.net.http.HttpClientImpl",
89+
LETTUCE_HANDSHAKE_HANDLER
8790
};
8891
}
8992

@@ -185,6 +188,8 @@ public void methodAdvice(MethodTransformer transformer) {
185188
transformer.applyAdvice(
186189
isTypeInitializer().and(isDeclaredBy(RXJAVA2_DISABLED_TYPE_INITIALIZERS)), advice);
187190
transformer.applyAdvice(namedOneOf("sendAsync").and(isDeclaredBy(JAVA_HTTP_CLIENT)), advice);
191+
transformer.applyAdvice(
192+
named("channelRegistered").and(isDeclaredBy(named(LETTUCE_HANDSHAKE_HANDLER))), advice);
188193
}
189194

190195
public static class DisableAsyncAdvice {

dd-java-agent/instrumentation/lettuce/lettuce-5.0/src/test/groovy/Lettuce5ClientTestBase.groovy

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,6 @@ abstract class Lettuce5ClientTestBase extends VersionedNamingTestBase {
4242
RedisAsyncCommands<String, ?> asyncCommands
4343
RedisCommands<String, ?> syncCommands
4444

45-
@Override
46-
boolean useStrictTraceWrites() {
47-
// latest seems leaking continuations that terminates later hence the strict trace will discard our spans.
48-
!isLatestDepTest
49-
}
50-
51-
5245
def setup() {
5346
redisServer.start()
5447
println "Using redis: $redisServer.redisURI"

0 commit comments

Comments
 (0)