From d5eb190ba3af9a64a5bba5b46100f3b398a5d248 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Thu, 7 Dec 2023 15:24:40 +0200 Subject: [PATCH] use db.redis.database_index instead of db.name --- .../VertxRedisClientAttributesExtractor.java | 33 +++++++++++++++++++ .../VertxRedisClientAttributesGetter.java | 2 +- .../VertxRedisClientNetAttributesGetter.java | 2 +- .../v4_0/redis/VertxRedisClientRequest.java | 4 +-- .../redis/VertxRedisClientSingletons.java | 1 + .../v4_0/redis/VertxRedisClientTest.java | 3 +- 6 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesExtractor.java diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesExtractor.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesExtractor.java new file mode 100644 index 000000000000..670d8dcf0903 --- /dev/null +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesExtractor.java @@ -0,0 +1,33 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.vertx.v4_0.redis; + +import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet; + +import io.opentelemetry.api.common.AttributesBuilder; +import io.opentelemetry.context.Context; +import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; +import io.opentelemetry.semconv.SemanticAttributes; +import javax.annotation.Nullable; + +enum VertxRedisClientAttributesExtractor + implements AttributesExtractor { + INSTANCE; + + @Override + public void onStart( + AttributesBuilder attributes, Context parentContext, VertxRedisClientRequest request) { + internalSet(attributes, SemanticAttributes.DB_REDIS_DATABASE_INDEX, request.getDatabaseIndex()); + } + + @Override + public void onEnd( + AttributesBuilder attributes, + Context context, + VertxRedisClientRequest request, + @Nullable Void unused, + @Nullable Throwable error) {} +} diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java index 9ce937e93d4a..9251bf0ee915 100644 --- a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java @@ -32,7 +32,7 @@ public String getUser(VertxRedisClientRequest request) { @Override @Nullable public String getName(VertxRedisClientRequest request) { - return request.getDatabase(); + return null; } @Override diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientNetAttributesGetter.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientNetAttributesGetter.java index ba06a33ef885..9b0e12581dee 100644 --- a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientNetAttributesGetter.java +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientNetAttributesGetter.java @@ -9,7 +9,7 @@ import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter; import javax.annotation.Nullable; -public enum VertxRedisClientNetAttributesGetter +enum VertxRedisClientNetAttributesGetter implements ServerAttributesGetter, NetworkAttributesGetter { diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientRequest.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientRequest.java index 08b5f4b3abb2..f202034b7849 100644 --- a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientRequest.java +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientRequest.java @@ -36,9 +36,9 @@ public String getUser() { return redisUri.user(); } - public String getDatabase() { + public Long getDatabaseIndex() { Integer select = redisUri.select(); - return select != null ? select.toString() : null; + return select != null ? select.longValue() : null; } public String getConnectionString() { diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientSingletons.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientSingletons.java index aa107fe9624e..090966f719ad 100644 --- a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientSingletons.java +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientSingletons.java @@ -44,6 +44,7 @@ public final class VertxRedisClientSingletons { GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor) .addAttributesExtractor( DbClientAttributesExtractor.create(VertxRedisClientAttributesGetter.INSTANCE)) + .addAttributesExtractor(VertxRedisClientAttributesExtractor.INSTANCE) .addAttributesExtractor( ServerAttributesExtractor.create(VertxRedisClientNetAttributesGetter.INSTANCE)) .addAttributesExtractor( diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientTest.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientTest.java index 18a390f5e394..4d96efc047b4 100644 --- a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientTest.java +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientTest.java @@ -44,7 +44,7 @@ static void setupSpec() throws Exception { port = redisServer.getMappedPort(6379); vertx = Vertx.vertx(); - client = Redis.createClient(vertx, "redis://localhost:" + port); + client = Redis.createClient(vertx, "redis://localhost:" + port + "/1"); RedisConnection connection = client.connect().toCompletionStage().toCompletableFuture().get(30, TimeUnit.SECONDS); redis = RedisAPI.api(connection); @@ -197,6 +197,7 @@ private static AttributeAssertion[] redisSpanAttributes(String operation, String equalTo(SemanticAttributes.DB_SYSTEM, "redis"), equalTo(SemanticAttributes.DB_STATEMENT, statement), equalTo(SemanticAttributes.DB_OPERATION, operation), + equalTo(SemanticAttributes.DB_REDIS_DATABASE_INDEX, 1), equalTo(SemanticAttributes.SERVER_ADDRESS, "localhost"), equalTo(SemanticAttributes.SERVER_PORT, port), equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),