Skip to content

Commit c0dae09

Browse files
authored
Merge pull request #387 from DataDog/ark/enable-lettuce
Enable Lettuce instrumentation by default
2 parents 37a54b5 + 269e330 commit c0dae09

File tree

6 files changed

+25
-53
lines changed

6 files changed

+25
-53
lines changed

dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceAsyncCommandsInstrumentation.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@
1212
@AutoService(Instrumenter.class)
1313
public class LettuceAsyncCommandsInstrumentation extends Instrumenter.Default {
1414

15+
public static final String PACKAGE =
16+
LettuceAsyncCommandsInstrumentation.class.getPackage().getName();
17+
1518
public LettuceAsyncCommandsInstrumentation() {
1619
super("lettuce", "lettuce-5-async");
1720
}
1821

19-
@Override
20-
protected boolean defaultEnabled() {
21-
return false;
22-
}
23-
2422
@Override
2523
public ElementMatcher typeMatcher() {
2624
return named("io.lettuce.core.AbstractRedisAsyncCommands");
@@ -34,9 +32,7 @@ public ElementMatcher<? super ClassLoader> classLoaderMatcher() {
3432
@Override
3533
public String[] helperClassNames() {
3634
return new String[] {
37-
LettuceAsyncCommandsInstrumentation.class.getPackage().getName() + ".LettuceAsyncBiFunction",
38-
LettuceAsyncCommandsInstrumentation.class.getPackage().getName()
39-
+ ".LettuceInstrumentationUtil"
35+
PACKAGE + ".LettuceAsyncBiFunction", PACKAGE + ".LettuceInstrumentationUtil"
4036
};
4137
}
4238

@@ -47,7 +43,8 @@ public Map<ElementMatcher, String> transformers() {
4743
isMethod()
4844
.and(named("dispatch"))
4945
.and(takesArgument(0, named("io.lettuce.core.protocol.RedisCommand"))),
50-
LettuceAsyncCommandsAdvice.class.getName());
46+
// Cannot reference class directly here because this would lead to class load failure on Java7
47+
PACKAGE + ".LettuceAsyncCommandsAdvice");
5148
return transformers;
5249
}
5350
}

dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceClientInstrumentation.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,19 @@
1212
@AutoService(Instrumenter.class)
1313
public final class LettuceClientInstrumentation extends Instrumenter.Default {
1414

15+
public static final String PACKAGE = LettuceClientInstrumentation.class.getPackage().getName();
16+
1517
private static final String[] HELPER_CLASS_NAMES =
1618
new String[] {
1719
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
1820
+ ".LettuceInstrumentationUtil",
19-
LettuceClientInstrumentation.class.getPackage().getName() + ".LettuceAsyncBiFunction"
21+
PACKAGE + ".LettuceAsyncBiFunction"
2022
};
2123

2224
public LettuceClientInstrumentation() {
2325
super("lettuce");
2426
}
2527

26-
@Override
27-
protected boolean defaultEnabled() {
28-
return false;
29-
}
30-
3128
@Override
3229
public ElementMatcher typeMatcher() {
3330
return named("io.lettuce.core.RedisClient");
@@ -53,7 +50,8 @@ public Map<ElementMatcher, String> transformers() {
5350
.and(nameStartsWith("connect"))
5451
.and(nameEndsWith("Async"))
5552
.and(takesArgument(1, named("io.lettuce.core.RedisURI"))),
56-
ConnectionFutureAdvice.class.getName());
53+
// Cannot reference class directly here because this would lead to class load failure on Java7
54+
PACKAGE + ".ConnectionFutureAdvice");
5755
return transformers;
5856
}
5957
}

dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceReactiveCommandsInstrumentation.java

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,20 @@
55

66
import com.google.auto.service.AutoService;
77
import datadog.trace.agent.tooling.Instrumenter;
8-
import datadog.trace.instrumentation.lettuce.rx.LettuceFluxCreationAdvice;
9-
import datadog.trace.instrumentation.lettuce.rx.LettuceMonoCreationAdvice;
108
import java.util.HashMap;
119
import java.util.Map;
1210
import net.bytebuddy.matcher.ElementMatcher;
1311

1412
@AutoService(Instrumenter.class)
1513
public class LettuceReactiveCommandsInstrumentation extends Instrumenter.Default {
1614

15+
public static final String PACKAGE =
16+
LettuceReactiveCommandsInstrumentation.class.getPackage().getName();
17+
1718
public LettuceReactiveCommandsInstrumentation() {
1819
super("lettuce", "lettuce-5-rx");
1920
}
2021

21-
@Override
22-
protected boolean defaultEnabled() {
23-
return false;
24-
}
25-
2622
@Override
2723
public ElementMatcher typeMatcher() {
2824
return named("io.lettuce.core.AbstractRedisReactiveCommands");
@@ -36,18 +32,12 @@ public ElementMatcher<? super ClassLoader> classLoaderMatcher() {
3632
@Override
3733
public String[] helperClassNames() {
3834
return new String[] {
39-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
40-
+ ".LettuceInstrumentationUtil",
41-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
42-
+ ".rx.LettuceMonoCreationAdvice",
43-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
44-
+ ".rx.LettuceMonoDualConsumer",
45-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
46-
+ ".rx.LettuceFluxCreationAdvice",
47-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
48-
+ ".rx.LettuceFluxTerminationRunnable",
49-
LettuceReactiveCommandsInstrumentation.class.getPackage().getName()
50-
+ ".rx.LettuceFluxTerminationRunnable$FluxOnSubscribeConsumer"
35+
PACKAGE + ".LettuceInstrumentationUtil",
36+
PACKAGE + ".rx.LettuceMonoCreationAdvice",
37+
PACKAGE + ".rx.LettuceMonoDualConsumer",
38+
PACKAGE + ".rx.LettuceFluxCreationAdvice",
39+
PACKAGE + ".rx.LettuceFluxTerminationRunnable",
40+
PACKAGE + ".rx.LettuceFluxTerminationRunnable$FluxOnSubscribeConsumer"
5141
};
5242
}
5343

@@ -59,14 +49,16 @@ public Map<ElementMatcher, String> transformers() {
5949
.and(named("createMono"))
6050
.and(takesArgument(0, named("java.util.function.Supplier")))
6151
.and(returns(named("reactor.core.publisher.Mono"))),
62-
LettuceMonoCreationAdvice.class.getName());
52+
// Cannot reference class directly here because this would lead to class load failure on Java7
53+
PACKAGE + ".rx.LettuceMonoCreationAdvice");
6354
transformers.put(
6455
isMethod()
6556
.and(nameStartsWith("create"))
6657
.and(nameEndsWith("Flux"))
6758
.and(takesArgument(0, named("java.util.function.Supplier")))
6859
.and(returns(named(("reactor.core.publisher.Flux")))),
69-
LettuceFluxCreationAdvice.class.getName());
60+
// Cannot reference class directly here because this would lead to class load failure on Java7
61+
PACKAGE + ".rx.LettuceFluxCreationAdvice");
7062

7163
return transformers;
7264
}

dd-java-agent/instrumentation/lettuce-5/src/test/groovy/LettuceAsyncClientTest.groovy

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ import static datadog.trace.agent.test.ListWriterAssert.assertTraces
2727
import static datadog.trace.instrumentation.lettuce.LettuceInstrumentationUtil.AGENT_CRASHING_COMMAND_PREFIX
2828

2929
class LettuceAsyncClientTest extends AgentTestRunner {
30-
31-
static {
32-
System.setProperty("dd.integration.lettuce.enabled", "true")
33-
}
34-
3530
public static final String HOST = "127.0.0.1"
3631
public static final int PORT = TestUtils.randomOpenPort()
3732
public static final int INCORRECT_PORT = TestUtils.randomOpenPort()

dd-java-agent/instrumentation/lettuce-5/src/test/groovy/LettuceReactiveClientTest.groovy

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ import static datadog.trace.agent.test.ListWriterAssert.assertTraces
1414
import static datadog.trace.instrumentation.lettuce.LettuceInstrumentationUtil.AGENT_CRASHING_COMMAND_PREFIX
1515

1616
class LettuceReactiveClientTest extends AgentTestRunner {
17-
18-
static {
19-
System.setProperty("dd.integration.lettuce.enabled", "true")
20-
}
21-
2217
public static final String HOST = "127.0.0.1"
2318
public static final int PORT = TestUtils.randomOpenPort()
2419
public static final int DB_INDEX = 0
@@ -60,7 +55,7 @@ class LettuceReactiveClientTest extends AgentTestRunner {
6055
connection.close()
6156
redisServer.stop()
6257
}
63-
58+
6459
def "set command with subscribe on a defined consumer"() {
6560
setup:
6661
def conds = new AsyncConditions()

dd-java-agent/instrumentation/lettuce-5/src/test/groovy/LettuceSyncClientTest.groovy

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ import static datadog.trace.agent.test.ListWriterAssert.assertTraces
1414
import static datadog.trace.instrumentation.lettuce.LettuceInstrumentationUtil.AGENT_CRASHING_COMMAND_PREFIX
1515

1616
class LettuceSyncClientTest extends AgentTestRunner {
17-
18-
static {
19-
System.setProperty("dd.integration.lettuce.enabled", "true")
20-
}
21-
2217
public static final String HOST = "127.0.0.1"
2318
public static final int PORT = TestUtils.randomOpenPort()
2419
public static final int INCORRECT_PORT = TestUtils.randomOpenPort()

0 commit comments

Comments
 (0)