Skip to content

Commit 67aa921

Browse files
committed
review
1 parent 30c467b commit 67aa921

File tree

8 files changed

+407
-446
lines changed

8 files changed

+407
-446
lines changed

instrumentation/lettuce/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Settings for the Lettuce instrumentation
22

3-
| System property | Type | Default | Description |
4-
|-----------------------------------------------------------------------------|---------|---------|--------------------------------------------------------|
5-
| `otel.instrumentation.lettuce.experimental-span-attributes` | Boolean | `false` | Enable the capture of experimental span attributes. |
6-
| `otel.instrumentation.lettuce.connection-telemetry.enabled` | Boolean | `false` | Enable the creation of Connect spans. |
7-
| `otel.instrumentation.lettuce.experimental.command-encoding-events.enabled` | Boolean | `false` | Enable the capture of command encoding as span events. |
3+
| System property | Type | Default | Description |
4+
|-----------------------------------------------------------------------------|---------|---------|--------------------------------------------------------------------------------|
5+
| `otel.instrumentation.lettuce.experimental-span-attributes` | Boolean | `false` | Enable the capture of experimental span attributes. |
6+
| `otel.instrumentation.lettuce.connection-telemetry.enabled` | Boolean | `false` | Enable the creation of Connect spans. |
7+
| `otel.instrumentation.lettuce.experimental.command-encoding-events.enabled` | Boolean | `false` | Enable the capture of `redis.encode.start` and `redis.encode.end` span events. |

instrumentation/lettuce/lettuce-5.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_1/LettuceReactiveClientTest.java

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.lettuce.core.RedisClient;
1919
import io.opentelemetry.api.common.Attributes;
2020
import io.opentelemetry.api.trace.SpanKind;
21+
import io.opentelemetry.instrumentation.lettuce.v5_1.AbstractLettuceClientTest;
2122
import io.opentelemetry.instrumentation.lettuce.v5_1.AbstractLettuceReactiveClientTest;
2223
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
2324
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
@@ -53,35 +54,33 @@ void testAsyncSubscriberWithSpecificThreadPool() {
5354
trace ->
5455
trace.hasSpansSatisfyingExactly(
5556
span -> span.hasName("test-parent").hasAttributes(Attributes.empty()),
56-
span -> {
57-
span.hasName("SET")
58-
.hasKind(SpanKind.CLIENT)
59-
.hasParent(trace.getSpan(0))
60-
.hasAttributesSatisfyingExactly(
61-
addExtraAttributes(
62-
equalTo(NETWORK_TYPE, "ipv4"),
63-
equalTo(NETWORK_PEER_ADDRESS, ip),
64-
equalTo(NETWORK_PEER_PORT, port),
65-
equalTo(SERVER_ADDRESS, host),
66-
equalTo(SERVER_PORT, port),
67-
equalTo(maybeStable(DB_SYSTEM), "redis"),
68-
equalTo(maybeStable(DB_STATEMENT), "SET a ?")));
69-
assertCommandEncodeEvents(span);
70-
},
71-
span -> {
72-
span.hasName("GET")
73-
.hasKind(SpanKind.CLIENT)
74-
.hasParent(trace.getSpan(0))
75-
.hasAttributesSatisfyingExactly(
76-
addExtraAttributes(
77-
equalTo(NETWORK_TYPE, "ipv4"),
78-
equalTo(NETWORK_PEER_ADDRESS, ip),
79-
equalTo(NETWORK_PEER_PORT, port),
80-
equalTo(SERVER_ADDRESS, host),
81-
equalTo(SERVER_PORT, port),
82-
equalTo(maybeStable(DB_SYSTEM), "redis"),
83-
equalTo(maybeStable(DB_STATEMENT), "GET a")));
84-
assertCommandEncodeEvents(span);
85-
}));
57+
span ->
58+
span.hasName("SET")
59+
.hasKind(SpanKind.CLIENT)
60+
.hasParent(trace.getSpan(0))
61+
.hasAttributesSatisfyingExactly(
62+
addExtraAttributes(
63+
equalTo(NETWORK_TYPE, "ipv4"),
64+
equalTo(NETWORK_PEER_ADDRESS, ip),
65+
equalTo(NETWORK_PEER_PORT, port),
66+
equalTo(SERVER_ADDRESS, host),
67+
equalTo(SERVER_PORT, port),
68+
equalTo(maybeStable(DB_SYSTEM), "redis"),
69+
equalTo(maybeStable(DB_STATEMENT), "SET a ?")))
70+
.satisfies(AbstractLettuceClientTest::assertCommandEncodeEvents),
71+
span ->
72+
span.hasName("GET")
73+
.hasKind(SpanKind.CLIENT)
74+
.hasParent(trace.getSpan(0))
75+
.hasAttributesSatisfyingExactly(
76+
addExtraAttributes(
77+
equalTo(NETWORK_TYPE, "ipv4"),
78+
equalTo(NETWORK_PEER_ADDRESS, ip),
79+
equalTo(NETWORK_PEER_PORT, port),
80+
equalTo(SERVER_ADDRESS, host),
81+
equalTo(SERVER_PORT, port),
82+
equalTo(maybeStable(DB_SYSTEM), "redis"),
83+
equalTo(maybeStable(DB_STATEMENT), "GET a")))
84+
.satisfies(AbstractLettuceClientTest::assertCommandEncodeEvents)));
8685
}
8786
}

instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceTelemetryBuilder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ public final class LettuceTelemetryBuilder {
1717
private final OpenTelemetry openTelemetry;
1818

1919
private boolean statementSanitizationEnabled = true;
20-
21-
private boolean encodingEventsEnabled = true;
20+
private boolean encodingEventsEnabled = false;
2221

2322
LettuceTelemetryBuilder(OpenTelemetry openTelemetry) {
2423
this.openTelemetry = openTelemetry;
@@ -38,7 +37,7 @@ public LettuceTelemetryBuilder setStatementSanitizationEnabled(
3837

3938
/**
4039
* Sets whether the {@code redis.encode.start} and {@code redis.encode.end} span events should be
41-
* emitted by the constructed {@link LettuceTelemetry}. Enabled by default.
40+
* emitted by the constructed {@link LettuceTelemetry}. Disabled by default.
4241
*/
4342
@CanIgnoreReturnValue
4443
public LettuceTelemetryBuilder setEncodingSpanEventsEnabled(boolean encodingEventsEnabled) {

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

Lines changed: 87 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -156,20 +156,19 @@ void testSetCommandUsingFutureGetWithTimeout() throws Exception {
156156
.waitAndAssertTraces(
157157
trace ->
158158
trace.hasSpansSatisfyingExactly(
159-
span -> {
160-
span.hasName("SET")
161-
.hasKind(SpanKind.CLIENT)
162-
.hasAttributesSatisfyingExactly(
163-
addExtraAttributes(
164-
equalTo(NETWORK_TYPE, "ipv4"),
165-
equalTo(NETWORK_PEER_ADDRESS, ip),
166-
equalTo(NETWORK_PEER_PORT, port),
167-
equalTo(SERVER_ADDRESS, host),
168-
equalTo(SERVER_PORT, port),
169-
equalTo(maybeStable(DB_SYSTEM), "redis"),
170-
equalTo(maybeStable(DB_STATEMENT), "SET TESTSETKEY ?")));
171-
assertCommandEncodeEvents(span);
172-
}));
159+
span ->
160+
span.hasName("SET")
161+
.hasKind(SpanKind.CLIENT)
162+
.hasAttributesSatisfyingExactly(
163+
addExtraAttributes(
164+
equalTo(NETWORK_TYPE, "ipv4"),
165+
equalTo(NETWORK_PEER_ADDRESS, ip),
166+
equalTo(NETWORK_PEER_PORT, port),
167+
equalTo(SERVER_ADDRESS, host),
168+
equalTo(SERVER_PORT, port),
169+
equalTo(maybeStable(DB_SYSTEM), "redis"),
170+
equalTo(maybeStable(DB_STATEMENT), "SET TESTSETKEY ?")))
171+
.satisfies(AbstractLettuceClientTest::assertCommandEncodeEvents)));
173172
}
174173

175174
@Test
@@ -200,21 +199,21 @@ void testGetCommandChainedWithThenAccept() throws Exception {
200199
new ArrayList<>(
201200
Arrays.asList(
202201
span -> span.hasName("parent").hasKind(SpanKind.INTERNAL).hasNoParent(),
203-
span -> {
204-
span.hasName("GET")
205-
.hasKind(SpanKind.CLIENT)
206-
.hasParent(trace.getSpan(0))
207-
.hasAttributesSatisfyingExactly(
208-
addExtraAttributes(
209-
equalTo(NETWORK_TYPE, "ipv4"),
210-
equalTo(NETWORK_PEER_ADDRESS, ip),
211-
equalTo(NETWORK_PEER_PORT, port),
212-
equalTo(SERVER_ADDRESS, host),
213-
equalTo(SERVER_PORT, port),
214-
equalTo(maybeStable(DB_SYSTEM), "redis"),
215-
equalTo(maybeStable(DB_STATEMENT), "GET TESTKEY")));
216-
assertCommandEncodeEvents(span);
217-
}));
202+
span ->
203+
span.hasName("GET")
204+
.hasKind(SpanKind.CLIENT)
205+
.hasParent(trace.getSpan(0))
206+
.hasAttributesSatisfyingExactly(
207+
addExtraAttributes(
208+
equalTo(NETWORK_TYPE, "ipv4"),
209+
equalTo(NETWORK_PEER_ADDRESS, ip),
210+
equalTo(NETWORK_PEER_PORT, port),
211+
equalTo(SERVER_ADDRESS, host),
212+
equalTo(SERVER_PORT, port),
213+
equalTo(maybeStable(DB_SYSTEM), "redis"),
214+
equalTo(maybeStable(DB_STATEMENT), "GET TESTKEY")))
215+
.satisfies(
216+
AbstractLettuceClientTest::assertCommandEncodeEvents)));
218217

219218
if (testCallback()) {
220219
spanAsserts.add(
@@ -278,23 +277,22 @@ void testGetNonExistentKeyCommandWithHandleAsyncAndChainedWithThenApply() throws
278277
new ArrayList<>(
279278
Arrays.asList(
280279
span -> span.hasName("parent").hasKind(SpanKind.INTERNAL).hasNoParent(),
281-
span -> {
282-
span.hasName("GET")
283-
.hasKind(SpanKind.CLIENT)
284-
.hasParent(trace.getSpan(0))
285-
.hasAttributesSatisfyingExactly(
286-
addExtraAttributes(
287-
equalTo(NETWORK_TYPE, "ipv4"),
288-
equalTo(NETWORK_PEER_ADDRESS, ip),
289-
equalTo(NETWORK_PEER_PORT, port),
290-
equalTo(SERVER_ADDRESS, host),
291-
equalTo(SERVER_PORT, port),
292-
equalTo(maybeStable(DB_SYSTEM), "redis"),
293-
equalTo(
294-
maybeStable(DB_STATEMENT), "GET NON_EXISTENT_KEY")));
295-
296-
assertCommandEncodeEvents(span);
297-
}));
280+
span ->
281+
span.hasName("GET")
282+
.hasKind(SpanKind.CLIENT)
283+
.hasParent(trace.getSpan(0))
284+
.hasAttributesSatisfyingExactly(
285+
addExtraAttributes(
286+
equalTo(NETWORK_TYPE, "ipv4"),
287+
equalTo(NETWORK_PEER_ADDRESS, ip),
288+
equalTo(NETWORK_PEER_PORT, port),
289+
equalTo(SERVER_ADDRESS, host),
290+
equalTo(SERVER_PORT, port),
291+
equalTo(maybeStable(DB_SYSTEM), "redis"),
292+
equalTo(
293+
maybeStable(DB_STATEMENT), "GET NON_EXISTENT_KEY")))
294+
.satisfies(
295+
AbstractLettuceClientTest::assertCommandEncodeEvents)));
298296

299297
if (testCallback()) {
300298
spanAsserts.addAll(
@@ -345,22 +343,21 @@ void testCommandWithNoArgumentsUsingBiconsumer() throws Exception {
345343
new ArrayList<>(
346344
Arrays.asList(
347345
span -> span.hasName("parent").hasKind(SpanKind.INTERNAL).hasNoParent(),
348-
span -> {
349-
span.hasName("RANDOMKEY")
350-
.hasKind(SpanKind.CLIENT)
351-
.hasParent(trace.getSpan(0))
352-
.hasAttributesSatisfyingExactly(
353-
addExtraAttributes(
354-
equalTo(NETWORK_TYPE, "ipv4"),
355-
equalTo(NETWORK_PEER_ADDRESS, ip),
356-
equalTo(NETWORK_PEER_PORT, port),
357-
equalTo(SERVER_ADDRESS, host),
358-
equalTo(SERVER_PORT, port),
359-
equalTo(maybeStable(DB_SYSTEM), "redis"),
360-
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY")));
361-
362-
assertCommandEncodeEvents(span);
363-
}));
346+
span ->
347+
span.hasName("RANDOMKEY")
348+
.hasKind(SpanKind.CLIENT)
349+
.hasParent(trace.getSpan(0))
350+
.hasAttributesSatisfyingExactly(
351+
addExtraAttributes(
352+
equalTo(NETWORK_TYPE, "ipv4"),
353+
equalTo(NETWORK_PEER_ADDRESS, ip),
354+
equalTo(NETWORK_PEER_PORT, port),
355+
equalTo(SERVER_ADDRESS, host),
356+
equalTo(SERVER_PORT, port),
357+
equalTo(maybeStable(DB_SYSTEM), "redis"),
358+
equalTo(maybeStable(DB_STATEMENT), "RANDOMKEY")))
359+
.satisfies(
360+
AbstractLettuceClientTest::assertCommandEncodeEvents)));
364361

365362
if (testCallback()) {
366363
spanAsserts.add(
@@ -406,38 +403,35 @@ void testHashSetAndThenNestApplyToHashGetall() throws Exception {
406403
.waitAndAssertTraces(
407404
trace ->
408405
trace.hasSpansSatisfyingExactly(
409-
span -> {
410-
span.hasName("HMSET")
411-
.hasKind(SpanKind.CLIENT)
412-
.hasAttributesSatisfyingExactly(
413-
addExtraAttributes(
414-
equalTo(NETWORK_TYPE, "ipv4"),
415-
equalTo(NETWORK_PEER_ADDRESS, ip),
416-
equalTo(NETWORK_PEER_PORT, port),
417-
equalTo(SERVER_ADDRESS, host),
418-
equalTo(SERVER_PORT, port),
419-
equalTo(maybeStable(DB_SYSTEM), "redis"),
420-
equalTo(
421-
maybeStable(DB_STATEMENT),
422-
"HMSET TESTHM firstname ? lastname ? age ?")));
423-
assertCommandEncodeEvents(span);
424-
}),
406+
span ->
407+
span.hasName("HMSET")
408+
.hasKind(SpanKind.CLIENT)
409+
.hasAttributesSatisfyingExactly(
410+
addExtraAttributes(
411+
equalTo(NETWORK_TYPE, "ipv4"),
412+
equalTo(NETWORK_PEER_ADDRESS, ip),
413+
equalTo(NETWORK_PEER_PORT, port),
414+
equalTo(SERVER_ADDRESS, host),
415+
equalTo(SERVER_PORT, port),
416+
equalTo(maybeStable(DB_SYSTEM), "redis"),
417+
equalTo(
418+
maybeStable(DB_STATEMENT),
419+
"HMSET TESTHM firstname ? lastname ? age ?")))
420+
.satisfies(AbstractLettuceClientTest::assertCommandEncodeEvents)),
425421
trace ->
426422
trace.hasSpansSatisfyingExactly(
427-
span -> {
428-
span.hasName("HGETALL")
429-
.hasKind(SpanKind.CLIENT)
430-
.hasAttributesSatisfyingExactly(
431-
addExtraAttributes(
432-
equalTo(NETWORK_TYPE, "ipv4"),
433-
equalTo(NETWORK_PEER_ADDRESS, ip),
434-
equalTo(NETWORK_PEER_PORT, port),
435-
equalTo(SERVER_ADDRESS, host),
436-
equalTo(SERVER_PORT, port),
437-
equalTo(maybeStable(DB_SYSTEM), "redis"),
438-
equalTo(maybeStable(DB_STATEMENT), "HGETALL TESTHM")));
439-
440-
assertCommandEncodeEvents(span);
441-
}));
423+
span ->
424+
span.hasName("HGETALL")
425+
.hasKind(SpanKind.CLIENT)
426+
.hasAttributesSatisfyingExactly(
427+
addExtraAttributes(
428+
equalTo(NETWORK_TYPE, "ipv4"),
429+
equalTo(NETWORK_PEER_ADDRESS, ip),
430+
equalTo(NETWORK_PEER_PORT, port),
431+
equalTo(SERVER_ADDRESS, host),
432+
equalTo(SERVER_PORT, port),
433+
equalTo(maybeStable(DB_SYSTEM), "redis"),
434+
equalTo(maybeStable(DB_STATEMENT), "HGETALL TESTHM")))
435+
.satisfies(AbstractLettuceClientTest::assertCommandEncodeEvents)));
442436
}
443437
}

0 commit comments

Comments
 (0)