Skip to content

Commit

Permalink
use db.redis.database_index instead of db.name
Browse files Browse the repository at this point in the history
  • Loading branch information
laurit committed Dec 7, 2023
1 parent ed5f0b1 commit d5eb190
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -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<VertxRedisClientRequest, Void> {
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) {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public String getUser(VertxRedisClientRequest request) {
@Override
@Nullable
public String getName(VertxRedisClientRequest request) {
return request.getDatabase();
return null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter;
import javax.annotation.Nullable;

public enum VertxRedisClientNetAttributesGetter
enum VertxRedisClientNetAttributesGetter
implements
ServerAttributesGetter<VertxRedisClientRequest>,
NetworkAttributesGetter<VertxRedisClientRequest, Void> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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),
Expand Down

0 comments on commit d5eb190

Please sign in to comment.