diff --git a/src/main/java/io/lettuce/core/protocol/CommandHandler.java b/src/main/java/io/lettuce/core/protocol/CommandHandler.java index 05c335267d..3cde181067 100644 --- a/src/main/java/io/lettuce/core/protocol/CommandHandler.java +++ b/src/main/java/io/lettuce/core/protocol/CommandHandler.java @@ -482,12 +482,12 @@ private void attachTracing(ChannelHandlerContext ctx, RedisCommand comm Tracer.Span span = tracer.nextSpan(context); span.name(command.getType().name()); - String redisUriStr = ctx.channel().attr(ConnectionBuilder.REDIS_URI).get(); - RedisURI redisURI = RedisURI.create(redisUriStr); - span.tag("db.uri", redisURI.toString()); - span.tag("db.number", String.valueOf(redisURI.getDatabase())); - span.tag("db.user", Optional.ofNullable(redisURI.getCredentialsProvider().resolveCredentials().block()) - .map(RedisCredentials::getUsername).orElse("")); + if (channel.hasAttr(ConnectionBuilder.REDIS_URI)) { + String redisUriStr = channel.attr(ConnectionBuilder.REDIS_URI).get(); + RedisURI redisURI = RedisURI.create(redisUriStr); + span.tag("server.address", redisURI.toString()); + span.tag("db.namespace", String.valueOf(redisURI.getDatabase())); + } if (tracedEndpoint != null) { span.remoteEndpoint(tracedEndpoint); diff --git a/src/test/java/io/lettuce/core/tracing/SynchronousIntegrationTests.java b/src/test/java/io/lettuce/core/tracing/SynchronousIntegrationTests.java index 3334789f3c..8800e20f84 100644 --- a/src/test/java/io/lettuce/core/tracing/SynchronousIntegrationTests.java +++ b/src/test/java/io/lettuce/core/tracing/SynchronousIntegrationTests.java @@ -75,9 +75,8 @@ public SampleTestRunnerConsumer yourCode() { .containsEntry("net.sock.peer.addr", TestSettings.host()) .containsEntry("net.sock.peer.port", "" + TestSettings.port()); assertThat(finishedSpan.getTags()).containsKeys("db.operation"); - assertThat(finishedSpan.getTags()).containsKeys("db.uri"); - assertThat(finishedSpan.getTags()).containsKeys("db.number"); - assertThat(finishedSpan.getTags()).containsKeys("db.user"); + assertThat(finishedSpan.getTags()).containsKeys("server.address"); + assertThat(finishedSpan.getTags()).containsKeys("db.namespace"); } assertThat(commands).extracting(RedisCommand::getType).contains(CommandType.PING, CommandType.HELLO);