Skip to content

Commit 36ed203

Browse files
heyamstrask
andauthored
Apply both serverAttributes & networkAttributes to Lettuce 5.1 (#10197)
Co-authored-by: Trask Stalnaker <[email protected]>
1 parent e843d08 commit 36ed203

File tree

8 files changed

+112
-24
lines changed

8 files changed

+112
-24
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ void testAsyncSubscriberWithSpecificThreadPool() {
5454
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
5555
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
5656
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
57+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
58+
equalTo(SemanticAttributes.SERVER_PORT, port),
5759
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
5860
equalTo(SemanticAttributes.DB_STATEMENT, "SET a ?"))
5961
.hasEventsSatisfyingExactly(
@@ -67,6 +69,8 @@ void testAsyncSubscriberWithSpecificThreadPool() {
6769
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
6870
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
6971
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
72+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
73+
equalTo(SemanticAttributes.SERVER_PORT, port),
7074
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
7175
equalTo(SemanticAttributes.DB_STATEMENT, "GET a"))
7276
.hasEventsSatisfyingExactly(

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

Lines changed: 0 additions & 22 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.lettuce.v5_1;
7+
8+
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter;
9+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter;
10+
import io.opentelemetry.instrumentation.lettuce.v5_1.OpenTelemetryTracing.OpenTelemetryEndpoint;
11+
import java.net.InetSocketAddress;
12+
import javax.annotation.Nullable;
13+
14+
class LettuceServerAttributesGetter
15+
implements ServerAttributesGetter<OpenTelemetryEndpoint>,
16+
NetworkAttributesGetter<OpenTelemetryEndpoint, Void> {
17+
18+
@Nullable
19+
@Override
20+
public String getServerAddress(OpenTelemetryEndpoint request) {
21+
if (request.address != null) {
22+
return request.address.getHostString();
23+
}
24+
return null;
25+
}
26+
27+
@Nullable
28+
@Override
29+
public Integer getServerPort(OpenTelemetryEndpoint request) {
30+
if (request.address != null) {
31+
return request.address.getPort();
32+
}
33+
return null;
34+
}
35+
36+
@Nullable
37+
@Override
38+
public InetSocketAddress getNetworkPeerInetSocketAddress(
39+
OpenTelemetryEndpoint openTelemetryEndpoint, @Nullable Void unused) {
40+
return openTelemetryEndpoint.address;
41+
}
42+
}

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import io.opentelemetry.instrumentation.api.incubator.semconv.db.RedisCommandSanitizer;
2828
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
2929
import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor;
30+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor;
3031
import io.opentelemetry.semconv.SemanticAttributes;
3132
import io.opentelemetry.semconv.SemanticAttributes.DbSystemValues;
3233
import java.net.InetSocketAddress;
@@ -39,7 +40,9 @@
3940
final class OpenTelemetryTracing implements Tracing {
4041

4142
private static final AttributesExtractor<OpenTelemetryEndpoint, Void> serverAttributesExtractor =
42-
NetworkAttributesExtractor.create(new LettuceNetworkAttributesGetter());
43+
ServerAttributesExtractor.create(new LettuceServerAttributesGetter());
44+
private static final AttributesExtractor<OpenTelemetryEndpoint, Void> networkAttributesExtractor =
45+
NetworkAttributesExtractor.create(new LettuceServerAttributesGetter());
4346
private final TracerProvider tracerProvider;
4447

4548
OpenTelemetryTracing(io.opentelemetry.api.trace.Tracer tracer, RedisCommandSanitizer sanitizer) {
@@ -204,7 +207,8 @@ public synchronized Tracer.Span remoteEndpoint(Endpoint endpoint) {
204207
private void fillEndpoint(OpenTelemetryEndpoint endpoint) {
205208
AttributesBuilder attributesBuilder = Attributes.builder();
206209
Context currentContext = span == null ? context : context.with(span);
207-
serverAttributesExtractor.onEnd(attributesBuilder, currentContext, endpoint, null, null);
210+
serverAttributesExtractor.onStart(attributesBuilder, currentContext, endpoint);
211+
networkAttributesExtractor.onEnd(attributesBuilder, currentContext, endpoint, null, null);
208212
if (span != null) {
209213
span.setAllAttributes(attributesBuilder.build());
210214
} else {

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ void testSetCommandUsingFutureGetWithTimeout() throws Exception {
145145
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
146146
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
147147
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
148+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
149+
equalTo(SemanticAttributes.SERVER_PORT, port),
148150
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
149151
equalTo(SemanticAttributes.DB_STATEMENT, "SET TESTSETKEY ?"))
150152
.hasEventsSatisfyingExactly(
@@ -189,6 +191,8 @@ void testGetCommandChainedWithThenAccept() throws Exception {
189191
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
190192
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
191193
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
194+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
195+
equalTo(SemanticAttributes.SERVER_PORT, port),
192196
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
193197
equalTo(SemanticAttributes.DB_STATEMENT, "GET TESTKEY"))
194198
.hasEventsSatisfyingExactly(
@@ -265,6 +269,8 @@ void testGetNonExistentKeyCommandWithHandleAsyncAndChainedWithThenApply() throws
265269
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
266270
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
267271
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
272+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
273+
equalTo(SemanticAttributes.SERVER_PORT, port),
268274
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
269275
equalTo(
270276
SemanticAttributes.DB_STATEMENT, "GET NON_EXISTENT_KEY"))
@@ -329,6 +335,8 @@ void testCommandWithNoArgumentsUsingBiconsumer() throws Exception {
329335
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
330336
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
331337
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
338+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
339+
equalTo(SemanticAttributes.SERVER_PORT, port),
332340
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
333341
equalTo(SemanticAttributes.DB_STATEMENT, "RANDOMKEY"))
334342
.hasEventsSatisfyingExactly(
@@ -386,6 +394,8 @@ void testHashSetAndThenNestApplyToHashGetall() throws Exception {
386394
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
387395
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
388396
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
397+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
398+
equalTo(SemanticAttributes.SERVER_PORT, port),
389399
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
390400
equalTo(
391401
SemanticAttributes.DB_STATEMENT,
@@ -402,6 +412,8 @@ void testHashSetAndThenNestApplyToHashGetall() throws Exception {
402412
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
403413
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
404414
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
415+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
416+
equalTo(SemanticAttributes.SERVER_PORT, port),
405417
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
406418
equalTo(SemanticAttributes.DB_STATEMENT, "HGETALL TESTHM"))
407419
.hasEventsSatisfyingExactly(

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ void testSetCommandWithSubscribeOnDefinedConsumer() throws Exception {
9292
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
9393
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
9494
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
95+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
96+
equalTo(SemanticAttributes.SERVER_PORT, port),
9597
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
9698
equalTo(SemanticAttributes.DB_STATEMENT, "SET TESTSETKEY ?"))
9799
.hasEventsSatisfyingExactly(
@@ -128,6 +130,8 @@ void testGetCommandWithLambdaFunction() throws Exception {
128130
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
129131
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
130132
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
133+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
134+
equalTo(SemanticAttributes.SERVER_PORT, port),
131135
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
132136
equalTo(SemanticAttributes.DB_STATEMENT, "GET TESTKEY"))
133137
.hasEventsSatisfyingExactly(
@@ -175,6 +179,8 @@ void testGetNonExistentKeyCommand() throws Exception {
175179
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
176180
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
177181
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
182+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
183+
equalTo(SemanticAttributes.SERVER_PORT, port),
178184
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
179185
equalTo(SemanticAttributes.DB_STATEMENT, "GET NON_EXISTENT_KEY"))
180186
.hasEventsSatisfyingExactly(
@@ -210,6 +216,8 @@ void testCommandWithNoArguments() throws Exception {
210216
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
211217
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
212218
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
219+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
220+
equalTo(SemanticAttributes.SERVER_PORT, port),
213221
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
214222
equalTo(SemanticAttributes.DB_STATEMENT, "RANDOMKEY"))
215223
.hasEventsSatisfyingExactly(
@@ -232,6 +240,8 @@ void testCommandFluxPublisher() {
232240
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
233241
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
234242
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
243+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
244+
equalTo(SemanticAttributes.SERVER_PORT, port),
235245
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
236246
equalTo(SemanticAttributes.DB_STATEMENT, "COMMAND"))
237247
.hasEventsSatisfyingExactly(
@@ -275,6 +285,8 @@ void testBlockingSubscriber() {
275285
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
276286
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
277287
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
288+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
289+
equalTo(SemanticAttributes.SERVER_PORT, port),
278290
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
279291
equalTo(SemanticAttributes.DB_STATEMENT, "SET a ?"))
280292
.hasEventsSatisfyingExactly(
@@ -288,6 +300,8 @@ void testBlockingSubscriber() {
288300
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
289301
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
290302
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
303+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
304+
equalTo(SemanticAttributes.SERVER_PORT, port),
291305
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
292306
equalTo(SemanticAttributes.DB_STATEMENT, "GET a"))
293307
.hasEventsSatisfyingExactly(
@@ -315,6 +329,8 @@ void testAsyncSubscriber() {
315329
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
316330
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
317331
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
332+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
333+
equalTo(SemanticAttributes.SERVER_PORT, port),
318334
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
319335
equalTo(SemanticAttributes.DB_STATEMENT, "SET a ?"))
320336
.hasEventsSatisfyingExactly(
@@ -328,6 +344,8 @@ void testAsyncSubscriber() {
328344
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
329345
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
330346
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
347+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
348+
equalTo(SemanticAttributes.SERVER_PORT, port),
331349
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
332350
equalTo(SemanticAttributes.DB_STATEMENT, "GET a"))
333351
.hasEventsSatisfyingExactly(

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ void testAuthCommand() throws Exception {
6666
equalTo(SemanticAttributes.NETWORK_TYPE, "ipv4"),
6767
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
6868
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
69+
equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"),
70+
equalTo(SemanticAttributes.SERVER_PORT, port),
6971
equalTo(SemanticAttributes.DB_SYSTEM, "redis"),
7072
equalTo(SemanticAttributes.DB_STATEMENT, "AUTH ?"))
7173
.hasEventsSatisfyingExactly(

0 commit comments

Comments
 (0)