From a39b2a9c7f94479c99f5c3cc9c5aab7bcf5175f2 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 24 Oct 2025 13:31:41 -0700 Subject: [PATCH 1/7] Remove DbClientCommonAttributesExtractor --- .../db/DbClientAttributesExtractor.java | 59 +++++++++++-- .../semconv/db/DbClientAttributesGetter.java | 1 + .../db/DbClientCommonAttributesExtractor.java | 83 ------------------- .../db/DbClientCommonAttributesGetter.java | 7 +- .../db/SqlClientAttributesExtractor.java | 61 +++++++++++++- .../semconv/db/SqlClientAttributesGetter.java | 32 ++++++- 6 files changed, 148 insertions(+), 95 deletions(-) delete mode 100644 instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesExtractor.java diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java index eb089ab38308..e7d09c6515f7 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java @@ -6,15 +6,22 @@ package io.opentelemetry.instrumentation.api.incubator.semconv.db; import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet; +import static io.opentelemetry.semconv.DbAttributes.DB_NAMESPACE; import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_NAME; import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_SUMMARY; import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_TEXT; +import static io.opentelemetry.semconv.DbAttributes.DB_RESPONSE_STATUS_CODE; +import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME; +import static io.opentelemetry.semconv.ErrorAttributes.ERROR_TYPE; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.internal.SemconvStability; +import io.opentelemetry.instrumentation.api.internal.SpanKey; +import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider; +import javax.annotation.Nullable; /** * Extractor of - extends DbClientCommonAttributesExtractor< - REQUEST, RESPONSE, DbClientAttributesGetter> { + implements AttributesExtractor, SpanKeyProvider { // copied from DbIncubatingAttributes + private static final AttributeKey DB_NAME = AttributeKey.stringKey("db.name"); + private static final AttributeKey DB_SYSTEM = AttributeKey.stringKey("db.system"); + private static final AttributeKey DB_USER = AttributeKey.stringKey("db.user"); + private static final AttributeKey DB_CONNECTION_STRING = + AttributeKey.stringKey("db.connection_string"); private static final AttributeKey DB_STATEMENT = AttributeKey.stringKey("db.statement"); - static final AttributeKey DB_OPERATION = AttributeKey.stringKey("db.operation"); + private static final AttributeKey DB_OPERATION = AttributeKey.stringKey("db.operation"); + + private final DbClientAttributesGetter getter; /** Creates the database client attributes extractor with default configuration. */ public static AttributesExtractor create( @@ -39,21 +52,55 @@ public static AttributesExtractor create( } DbClientAttributesExtractor(DbClientAttributesGetter getter) { - super(getter); + this.getter = getter; } + @SuppressWarnings("deprecation") // until old db semconv are dropped @Override public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) { - super.onStart(attributes, parentContext, request); - if (SemconvStability.emitStableDatabaseSemconv()) { + internalSet( + attributes, + DB_SYSTEM_NAME, + SemconvStability.stableDbSystemName(getter.getDbSystem(request))); + internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request)); internalSet(attributes, DB_QUERY_TEXT, getter.getDbQueryText(request)); internalSet(attributes, DB_OPERATION_NAME, getter.getDbOperationName(request)); internalSet(attributes, DB_QUERY_SUMMARY, getter.getDbQuerySummary(request)); } if (SemconvStability.emitOldDatabaseSemconv()) { + internalSet(attributes, DB_SYSTEM, getter.getDbSystem(request)); + internalSet(attributes, DB_USER, getter.getUser(request)); + internalSet(attributes, DB_NAME, getter.getDbNamespace(request)); + internalSet(attributes, DB_CONNECTION_STRING, getter.getConnectionString(request)); internalSet(attributes, DB_STATEMENT, getter.getDbQueryText(request)); internalSet(attributes, DB_OPERATION, getter.getDbOperationName(request)); } } + + @Override + public void onEnd( + AttributesBuilder attributes, + Context context, + REQUEST request, + @Nullable RESPONSE response, + @Nullable Throwable error) { + if (SemconvStability.emitStableDatabaseSemconv()) { + if (error != null) { + internalSet(attributes, ERROR_TYPE, error.getClass().getName()); + } + if (error != null || response != null) { + internalSet(attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatus(response, error)); + } + } + } + + /** + * This method is internal and is hence not for public use. Its API is unstable and can change at + * any time. + */ + @Override + public SpanKey internalGetSpanKey() { + return SpanKey.DB_CLIENT; + } } diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java index d3b0b9df6849..06a724d136a1 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java @@ -18,6 +18,7 @@ * from the attribute methods, but implement as many as possible for best compliance with the * OpenTelemetry specification. */ +@SuppressWarnings("deprecation") // extending deprecated interface for backward compatibility public interface DbClientAttributesGetter extends DbClientCommonAttributesGetter { diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesExtractor.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesExtractor.java deleted file mode 100644 index ac7e6eb01317..000000000000 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesExtractor.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.incubator.semconv.db; - -import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet; -import static io.opentelemetry.semconv.DbAttributes.DB_NAMESPACE; -import static io.opentelemetry.semconv.DbAttributes.DB_RESPONSE_STATUS_CODE; -import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME; -import static io.opentelemetry.semconv.ErrorAttributes.ERROR_TYPE; - -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.context.Context; -import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; -import io.opentelemetry.instrumentation.api.internal.SemconvStability; -import io.opentelemetry.instrumentation.api.internal.SpanKey; -import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider; -import javax.annotation.Nullable; - -abstract class DbClientCommonAttributesExtractor< - REQUEST, RESPONSE, GETTER extends DbClientCommonAttributesGetter> - implements AttributesExtractor, SpanKeyProvider { - - // copied from DbIncubatingAttributes - private static final AttributeKey DB_NAME = AttributeKey.stringKey("db.name"); - static final AttributeKey DB_SYSTEM = AttributeKey.stringKey("db.system"); - private static final AttributeKey DB_USER = AttributeKey.stringKey("db.user"); - private static final AttributeKey DB_CONNECTION_STRING = - AttributeKey.stringKey("db.connection_string"); - - final GETTER getter; - - DbClientCommonAttributesExtractor(GETTER getter) { - this.getter = getter; - } - - @SuppressWarnings("deprecation") // until old db semconv are dropped - @Override - public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) { - if (SemconvStability.emitStableDatabaseSemconv()) { - internalSet( - attributes, - DB_SYSTEM_NAME, - SemconvStability.stableDbSystemName(getter.getDbSystem(request))); - internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request)); - } - if (SemconvStability.emitOldDatabaseSemconv()) { - internalSet(attributes, DB_SYSTEM, getter.getDbSystem(request)); - internalSet(attributes, DB_USER, getter.getUser(request)); - internalSet(attributes, DB_NAME, getter.getDbNamespace(request)); - internalSet(attributes, DB_CONNECTION_STRING, getter.getConnectionString(request)); - } - } - - @Override - public final void onEnd( - AttributesBuilder attributes, - Context context, - REQUEST request, - @Nullable RESPONSE response, - @Nullable Throwable error) { - if (SemconvStability.emitStableDatabaseSemconv()) { - if (error != null) { - internalSet(attributes, ERROR_TYPE, error.getClass().getName()); - } - if (error != null || response != null) { - internalSet(attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatus(response, error)); - } - } - } - - /** - * This method is internal and is hence not for public use. Its API is unstable and can change at - * any time. - */ - @Override - public SpanKey internalGetSpanKey() { - return SpanKey.DB_CLIENT; - } -} diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesGetter.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesGetter.java index bda95d5c69a7..3e89f70c0a33 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesGetter.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesGetter.java @@ -7,7 +7,12 @@ import javax.annotation.Nullable; -/** An interface for getting attributes common to database clients. */ +/** + * An interface for getting attributes common to database clients. + * + * @deprecated Use {@link DbClientAttributesGetter} instead. + */ +@Deprecated public interface DbClientCommonAttributesGetter { String getDbSystem(REQUEST request); diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java index b30a61505176..52e3aae74b6b 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java @@ -7,18 +7,25 @@ import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet; import static io.opentelemetry.semconv.DbAttributes.DB_COLLECTION_NAME; +import static io.opentelemetry.semconv.DbAttributes.DB_NAMESPACE; import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_BATCH_SIZE; import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_NAME; import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_TEXT; +import static io.opentelemetry.semconv.DbAttributes.DB_RESPONSE_STATUS_CODE; +import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME; +import static io.opentelemetry.semconv.ErrorAttributes.ERROR_TYPE; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.internal.SemconvStability; +import io.opentelemetry.instrumentation.api.internal.SpanKey; +import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider; import io.opentelemetry.semconv.AttributeKeyTemplate; import java.util.Collection; import java.util.Map; +import javax.annotation.Nullable; /** * Extractor of - extends DbClientCommonAttributesExtractor< - REQUEST, RESPONSE, SqlClientAttributesGetter> { + implements AttributesExtractor, SpanKeyProvider { // copied from DbIncubatingAttributes + private static final AttributeKey DB_NAME = AttributeKey.stringKey("db.name"); + private static final AttributeKey DB_SYSTEM = AttributeKey.stringKey("db.system"); + private static final AttributeKey DB_USER = AttributeKey.stringKey("db.user"); + private static final AttributeKey DB_CONNECTION_STRING = + AttributeKey.stringKey("db.connection_string"); private static final AttributeKey DB_OPERATION = AttributeKey.stringKey("db.operation"); private static final AttributeKey DB_STATEMENT = AttributeKey.stringKey("db.statement"); private static final AttributeKeyTemplate DB_QUERY_PARAMETER = @@ -57,6 +68,7 @@ public static SqlClientAttributesExtractorBuilder getter; private final AttributeKey oldSemconvTableAttribute; private final boolean statementSanitizationEnabled; private final boolean captureQueryParameters; @@ -66,17 +78,32 @@ public static SqlClientAttributesExtractorBuilder oldSemconvTableAttribute, boolean statementSanitizationEnabled, boolean captureQueryParameters) { - super(getter); + this.getter = getter; this.oldSemconvTableAttribute = oldSemconvTableAttribute; // capturing query parameters disables statement sanitization this.statementSanitizationEnabled = !captureQueryParameters && statementSanitizationEnabled; this.captureQueryParameters = captureQueryParameters; } + @SuppressWarnings("deprecation") // until old db semconv are dropped @Override public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) { - super.onStart(attributes, parentContext, request); + // Common attributes + if (SemconvStability.emitStableDatabaseSemconv()) { + internalSet( + attributes, + DB_SYSTEM_NAME, + SemconvStability.stableDbSystemName(getter.getDbSystem(request))); + internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request)); + } + if (SemconvStability.emitOldDatabaseSemconv()) { + internalSet(attributes, DB_SYSTEM, getter.getDbSystem(request)); + internalSet(attributes, DB_USER, getter.getUser(request)); + internalSet(attributes, DB_NAME, getter.getDbNamespace(request)); + internalSet(attributes, DB_CONNECTION_STRING, getter.getConnectionString(request)); + } + // SQL-specific attributes Collection rawQueryTexts = getter.getRawQueryTexts(request); if (rawQueryTexts.isEmpty()) { @@ -160,4 +187,30 @@ private static String join(String delimiter, Collection collection) { } return builder.toString(); } + + @Override + public void onEnd( + AttributesBuilder attributes, + Context context, + REQUEST request, + @Nullable RESPONSE response, + @Nullable Throwable error) { + if (SemconvStability.emitStableDatabaseSemconv()) { + if (error != null) { + internalSet(attributes, ERROR_TYPE, error.getClass().getName()); + } + if (error != null || response != null) { + internalSet(attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatus(response, error)); + } + } + } + + /** + * This method is internal and is hence not for public use. Its API is unstable and can change at + * any time. + */ + @Override + public SpanKey internalGetSpanKey() { + return SpanKey.DB_CLIENT; + } } diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesGetter.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesGetter.java index d4760065b858..69f688776971 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesGetter.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesGetter.java @@ -22,7 +22,37 @@ * OpenTelemetry specification. */ public interface SqlClientAttributesGetter - extends DbClientCommonAttributesGetter { + extends DbClientAttributesGetter { + + /** + * SqlClientAttributesExtractor will try to populate db.operation.name based on {@link + * #getRawQueryTexts(REQUEST)}, but this can be used to explicitly provide the operation name. + */ + @Override + @Nullable + default String getDbOperationName(REQUEST request) { + return null; + } + + /** + * SqlClientAttributesExtractor will try to populate db.operation.name based on {@link + * #getRawQueryTexts(REQUEST)}, but this can be used to explicitly provide the operation name. + */ + @Override + @Nullable + default String getDbQueryText(REQUEST request) { + return null; + } + + /** + * SqlClientAttributesExtractor will try to populate db.operation.name based on {@link + * #getRawQueryTexts(REQUEST)}, but this can be used to explicitly provide the operation name. + */ + @Override + @Nullable + default String getDbQuerySummary(REQUEST request) { + return null; + } /** * Get the raw SQL query texts. The values returned by this method is later sanitized by the From 491840ef70c0f92897b8f11d7221747c40bfb1d6 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Mon, 27 Oct 2025 12:55:00 -0700 Subject: [PATCH 2/7] Consolidate network attribute extraction into DbClientAttributesGetter --- .../db/DbClientAttributesExtractor.java | 16 +++- .../semconv/db/DbClientAttributesGetter.java | 60 +++++++++++-- .../db/SqlClientAttributesExtractor.java | 16 +++- .../CassandraNetworkAttributesGetter.java | 22 ----- .../cassandra/v3_0/CassandraSingletons.java | 3 - .../v3_0/CassandraSqlAttributesGetter.java | 47 +++++++--- .../CassandraNetworkAttributesGetter.java | 34 ------- .../cassandra/v4_0/CassandraSingletons.java | 3 - .../v4_0/CassandraSqlAttributesGetter.java | 53 ++++++++--- .../CassandraNetworkAttributesGetter.java | 37 -------- .../v4_4/CassandraSqlAttributesGetter.java | 88 ++++++++++++++++--- .../v4_4/CassandraTelemetryBuilder.java | 3 - .../common/ClickHouseAttributesGetter.java | 14 --- .../v2_0/CouchbaseAttributesGetter.java | 26 +++--- .../CouchbaseNetworkAttributesGetter.java | 26 ------ .../couchbase/v2_0/CouchbaseSingletons.java | 3 - .../ElasticsearchDbAttributesGetter.java | 14 --- ...lasticsearchTransportAttributesGetter.java | 14 --- .../geode/GeodeDbAttributesGetter.java | 14 --- .../v2_4/InfluxDbAttributesGetter.java | 14 --- .../instrumentation/jdbc/JdbcSingletons.java | 5 +- .../jdbc/internal/JdbcAttributesGetter.java | 18 +++- .../internal/JdbcInstrumenterFactory.java | 5 -- .../internal/JdbcNetworkAttributesGetter.java | 28 ------ .../jedis/v1_4/JedisDbAttributesGetter.java | 14 --- .../jedis/v3_0/JedisDbAttributesGetter.java | 14 --- .../jedis/v4_0/JedisDbAttributesGetter.java | 25 +++--- .../v4_0/JedisNetworkAttributesGetter.java | 25 ------ .../jedis/v4_0/JedisSingletons.java | 3 - .../v4_0/LettuceDbAttributesGetter.java | 14 --- .../v5_0/LettuceDbAttributesGetter.java | 13 --- .../mongo/v3_1/MongoDbAttributesGetter.java | 7 -- .../rest/OpenSearchRestAttributesGetter.java | 14 --- .../r2dbc/v1_0/R2dbcSingletons.java | 4 +- .../internal/R2dbcInstrumenterBuilder.java | 3 +- .../internal/R2dbcNetAttributesGetter.java | 29 ------ .../internal/R2dbcSqlAttributesGetter.java | 12 +++ .../rediscala/RediscalaAttributesGetter.java | 14 --- .../redisson/RedissonDbAttributesGetter.java | 19 ++-- .../redisson/RedissonInstrumenterFactory.java | 3 - .../redisson/RedissonNetAttributesGetter.java | 19 ---- .../SpymemcachedAttributesGetter.java | 13 --- .../sql/VertxSqlClientAttributesGetter.java | 11 ++- 43 files changed, 307 insertions(+), 512 deletions(-) delete mode 100644 instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetworkAttributesGetter.java delete mode 100644 instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetworkAttributesGetter.java delete mode 100644 instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraNetworkAttributesGetter.java delete mode 100644 instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetworkAttributesGetter.java delete mode 100644 instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetworkAttributesGetter.java delete mode 100644 instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetworkAttributesGetter.java delete mode 100644 instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcNetAttributesGetter.java delete mode 100644 instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonNetAttributesGetter.java diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java index e7d09c6515f7..c3263fb985c9 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java @@ -21,6 +21,8 @@ import io.opentelemetry.instrumentation.api.internal.SemconvStability; import io.opentelemetry.instrumentation.api.internal.SpanKey; import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider; +import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor; +import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor; import javax.annotation.Nullable; /** @@ -44,6 +46,8 @@ public final class DbClientAttributesExtractor private static final AttributeKey DB_OPERATION = AttributeKey.stringKey("db.operation"); private final DbClientAttributesGetter getter; + private final InternalNetworkAttributesExtractor internalNetworkExtractor; + private final ServerAttributesExtractor serverAttributesExtractor; /** Creates the database client attributes extractor with default configuration. */ public static AttributesExtractor create( @@ -53,16 +57,18 @@ public static AttributesExtractor create( DbClientAttributesExtractor(DbClientAttributesGetter getter) { this.getter = getter; + internalNetworkExtractor = new InternalNetworkAttributesExtractor<>(getter, true, false); + serverAttributesExtractor = ServerAttributesExtractor.create(getter); } @SuppressWarnings("deprecation") // until old db semconv are dropped @Override public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) { if (SemconvStability.emitStableDatabaseSemconv()) { - internalSet( - attributes, - DB_SYSTEM_NAME, - SemconvStability.stableDbSystemName(getter.getDbSystem(request))); + String dbSystem = getter.getDbSystem(request); + if (dbSystem != null) { + internalSet(attributes, DB_SYSTEM_NAME, SemconvStability.stableDbSystemName(dbSystem)); + } internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request)); internalSet(attributes, DB_QUERY_TEXT, getter.getDbQueryText(request)); internalSet(attributes, DB_OPERATION_NAME, getter.getDbOperationName(request)); @@ -76,6 +82,7 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST internalSet(attributes, DB_STATEMENT, getter.getDbQueryText(request)); internalSet(attributes, DB_OPERATION, getter.getDbOperationName(request)); } + serverAttributesExtractor.onStart(attributes, parentContext, request); } @Override @@ -85,6 +92,7 @@ public void onEnd( REQUEST request, @Nullable RESPONSE response, @Nullable Throwable error) { + internalNetworkExtractor.onEnd(attributes, request, response); if (SemconvStability.emitStableDatabaseSemconv()) { if (error != null) { internalSet(attributes, ERROR_TYPE, error.getClass().getName()); diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java index 06a724d136a1..e68c13d644e1 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java @@ -5,6 +5,8 @@ package io.opentelemetry.instrumentation.api.incubator.semconv.db; +import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; +import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter; import javax.annotation.Nullable; /** @@ -18,31 +20,63 @@ * from the attribute methods, but implement as many as possible for best compliance with the * OpenTelemetry specification. */ -@SuppressWarnings("deprecation") // extending deprecated interface for backward compatibility public interface DbClientAttributesGetter - extends DbClientCommonAttributesGetter { + extends NetworkAttributesGetter, ServerAttributesGetter { + + @Deprecated + @Nullable + default String getSystem(REQUEST request) { + return null; + } + + // TODO: make this required to implement + @Nullable + default String getDbSystem(REQUEST request) { + return getSystem(request); + } + + @Deprecated + @Nullable + default String getUser(REQUEST request) { + return null; + } /** - * @deprecated Use {@link #getDbQueryText(REQUEST)} instead. + * @deprecated Use {@link #getDbNamespace(Object)} instead. */ @Deprecated @Nullable - default String getStatement(REQUEST request) { + default String getName(REQUEST request) { return null; } // TODO: make this required to implement @Nullable - default String getDbQueryText(REQUEST request) { - return getStatement(request); + default String getDbNamespace(REQUEST request) { + return getName(request); } - // TODO: make this required to implement + @Deprecated @Nullable - default String getDbQuerySummary(REQUEST request) { + default String getConnectionString(REQUEST request) { return null; } + /** + * @deprecated Use {@link #getDbQueryText(REQUEST)} instead. + */ + @Deprecated + @Nullable + default String getStatement(REQUEST request) { + return null; + } + + // TODO: make this required to implement + @Nullable + default String getDbQueryText(REQUEST request) { + return getStatement(request); + } + /** * @deprecated Use {@link #getDbOperationName(REQUEST)} instead. */ @@ -57,4 +91,14 @@ default String getOperation(REQUEST request) { default String getDbOperationName(REQUEST request) { return getOperation(request); } + + @Nullable + default String getDbQuerySummary(REQUEST request) { + return null; + } + + @Nullable + default String getResponseStatus(@Nullable RESPONSE response, @Nullable Throwable error) { + return null; + } } diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java index 52e3aae74b6b..4d895f6ce273 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java @@ -22,6 +22,8 @@ import io.opentelemetry.instrumentation.api.internal.SemconvStability; import io.opentelemetry.instrumentation.api.internal.SpanKey; import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider; +import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor; +import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor; import io.opentelemetry.semconv.AttributeKeyTemplate; import java.util.Collection; import java.util.Map; @@ -69,6 +71,8 @@ public static SqlClientAttributesExtractorBuilder getter; + private final InternalNetworkAttributesExtractor internalNetworkExtractor; + private final ServerAttributesExtractor serverAttributesExtractor; private final AttributeKey oldSemconvTableAttribute; private final boolean statementSanitizationEnabled; private final boolean captureQueryParameters; @@ -83,6 +87,8 @@ public static SqlClientAttributesExtractorBuilder(getter, true, false); + serverAttributesExtractor = ServerAttributesExtractor.create(getter); } @SuppressWarnings("deprecation") // until old db semconv are dropped @@ -90,10 +96,10 @@ public static SqlClientAttributesExtractorBuilder rawQueryTexts = getter.getRawQueryTexts(request); @@ -195,6 +202,7 @@ public void onEnd( REQUEST request, @Nullable RESPONSE response, @Nullable Throwable error) { + internalNetworkExtractor.onEnd(attributes, request, response); if (SemconvStability.emitStableDatabaseSemconv()) { if (error != null) { internalSet(attributes, ERROR_TYPE, error.getClass().getName()); diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetworkAttributesGetter.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetworkAttributesGetter.java deleted file mode 100644 index 5e6f41fecdee..000000000000 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetworkAttributesGetter.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.cassandra.v3_0; - -import com.datastax.driver.core.ExecutionInfo; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; -import java.net.InetSocketAddress; -import javax.annotation.Nullable; - -final class CassandraNetworkAttributesGetter - implements NetworkAttributesGetter { - - @Override - @Nullable - public InetSocketAddress getNetworkPeerInetSocketAddress( - CassandraRequest request, @Nullable ExecutionInfo executionInfo) { - return executionInfo == null ? null : executionInfo.getQueriedHost().getSocketAddress(); - } -} diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java index 7a8f81823692..12bbc464d562 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java @@ -12,7 +12,6 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor; import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; @@ -38,8 +37,6 @@ public final class CassandraSingletons { .setStatementSanitizationEnabled( AgentCommonConfig.get().isStatementSanitizationEnabled()) .build()) - .addAttributesExtractor( - NetworkAttributesExtractor.create(new CassandraNetworkAttributesGetter())) .addAttributesExtractor(new CassandraAttributesExtractor()) .addOperationMetrics(DbClientMetrics.get()) .buildInstrumenter(SpanKindExtractor.alwaysClient()); diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java index 0645ee598bb0..3651ea15f4b2 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java @@ -8,8 +8,12 @@ import static java.util.Collections.singleton; import com.datastax.driver.core.ExecutionInfo; +import com.datastax.driver.core.Host; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.UnknownHostException; import java.util.Collection; import javax.annotation.Nullable; @@ -22,28 +26,51 @@ public String getDbSystem(CassandraRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA; } - @Deprecated @Override @Nullable - public String getUser(CassandraRequest request) { - return null; + public String getDbNamespace(CassandraRequest request) { + return request.getSession().getLoggedKeyspace(); } @Override - @Nullable - public String getDbNamespace(CassandraRequest request) { - return request.getSession().getLoggedKeyspace(); + public Collection getRawQueryTexts(CassandraRequest request) { + return singleton(request.getQueryText()); } - @Deprecated + @Nullable @Override + public String getServerAddress(CassandraRequest request) { + return null; + } + @Nullable - public String getConnectionString(CassandraRequest request) { + @Override + public Integer getServerPort(CassandraRequest request) { return null; } + @Nullable @Override - public Collection getRawQueryTexts(CassandraRequest request) { - return singleton(request.getQueryText()); + public InetSocketAddress getNetworkPeerInetSocketAddress( + CassandraRequest request, @Nullable ExecutionInfo response) { + if (response == null) { + return null; + } + Host queriedHost = response.getQueriedHost(); + if (queriedHost == null) { + return null; + } + InetSocketAddress address = queriedHost.getSocketAddress(); + if (address != null && address.getAddress() == null) { + // Address is unresolved, need to resolve it explicitly + try { + InetAddress resolved = InetAddress.getByName(address.getHostString()); + return new InetSocketAddress(resolved, address.getPort()); + } catch (UnknownHostException e) { + // If resolution fails, return the unresolved address anyway + return address; + } + } + return address; } } diff --git a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetworkAttributesGetter.java b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetworkAttributesGetter.java deleted file mode 100644 index 44ed4e1e851d..000000000000 --- a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetworkAttributesGetter.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.cassandra.v4_0; - -import com.datastax.oss.driver.api.core.cql.ExecutionInfo; -import com.datastax.oss.driver.api.core.metadata.Node; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; -import java.net.InetSocketAddress; -import java.net.SocketAddress; -import javax.annotation.Nullable; - -final class CassandraNetworkAttributesGetter - implements NetworkAttributesGetter { - - @Override - @Nullable - public InetSocketAddress getNetworkPeerInetSocketAddress( - CassandraRequest request, @Nullable ExecutionInfo executionInfo) { - if (executionInfo == null) { - return null; - } - Node coordinator = executionInfo.getCoordinator(); - if (coordinator == null) { - return null; - } - // resolve() returns an existing InetSocketAddress, it does not do a dns resolve, - // at least in the only current EndPoint implementation (DefaultEndPoint) - SocketAddress address = coordinator.getEndPoint().resolve(); - return address instanceof InetSocketAddress ? (InetSocketAddress) address : null; - } -} diff --git a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSingletons.java b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSingletons.java index 624994166aa0..cb59a22ccc54 100644 --- a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSingletons.java +++ b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSingletons.java @@ -12,7 +12,6 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor; import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; @@ -37,8 +36,6 @@ public final class CassandraSingletons { .setStatementSanitizationEnabled( AgentCommonConfig.get().isStatementSanitizationEnabled()) .build()) - .addAttributesExtractor( - NetworkAttributesExtractor.create(new CassandraNetworkAttributesGetter())) .addAttributesExtractor(new CassandraAttributesExtractor()) .addOperationMetrics(DbClientMetrics.get()) .buildInstrumenter(SpanKindExtractor.alwaysClient()); diff --git a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java index 9e4ce39f1d11..36e6512313da 100644 --- a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java @@ -9,8 +9,14 @@ import com.datastax.oss.driver.api.core.CqlIdentifier; import com.datastax.oss.driver.api.core.cql.ExecutionInfo; +import com.datastax.oss.driver.api.core.metadata.EndPoint; +import com.datastax.oss.driver.api.core.metadata.Node; +import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.UnknownHostException; import java.util.Collection; import javax.annotation.Nullable; @@ -23,28 +29,55 @@ public String getDbSystem(CassandraRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA; } - @Deprecated @Override @Nullable - public String getUser(CassandraRequest request) { - return null; + public String getDbNamespace(CassandraRequest request) { + return request.getSession().getKeyspace().map(CqlIdentifier::toString).orElse(null); } @Override - @Nullable - public String getDbNamespace(CassandraRequest request) { - return request.getSession().getKeyspace().map(CqlIdentifier::toString).orElse(null); + public Collection getRawQueryTexts(CassandraRequest request) { + return singleton(request.getQueryText()); } - @Deprecated + @Nullable @Override + public String getServerAddress(CassandraRequest request) { + return null; + } + @Nullable - public String getConnectionString(CassandraRequest request) { + @Override + public Integer getServerPort(CassandraRequest request) { return null; } + @Nullable @Override - public Collection getRawQueryTexts(CassandraRequest request) { - return singleton(request.getQueryText()); + public InetSocketAddress getNetworkPeerInetSocketAddress( + CassandraRequest request, @Nullable ExecutionInfo response) { + if (response == null) { + return null; + } + Node coordinator = response.getCoordinator(); + if (coordinator == null) { + return null; + } + EndPoint endPoint = coordinator.getEndPoint(); + if (endPoint instanceof DefaultEndPoint) { + InetSocketAddress address = ((DefaultEndPoint) endPoint).resolve(); + if (address != null && address.getAddress() == null) { + // Address is unresolved, need to resolve it explicitly + try { + InetAddress resolved = InetAddress.getByName(address.getHostString()); + return new InetSocketAddress(resolved, address.getPort()); + } catch (UnknownHostException e) { + // If resolution fails, return the unresolved address anyway + return address; + } + } + return address; + } + return null; } } diff --git a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraNetworkAttributesGetter.java b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraNetworkAttributesGetter.java deleted file mode 100644 index 532dcb0646f6..000000000000 --- a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraNetworkAttributesGetter.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.cassandra.v4_4; - -import com.datastax.oss.driver.api.core.cql.ExecutionInfo; -import com.datastax.oss.driver.api.core.metadata.EndPoint; -import com.datastax.oss.driver.api.core.metadata.Node; -import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; -import java.net.InetSocketAddress; -import javax.annotation.Nullable; - -final class CassandraNetworkAttributesGetter - implements NetworkAttributesGetter { - - @Override - @Nullable - public InetSocketAddress getNetworkPeerInetSocketAddress( - CassandraRequest request, @Nullable ExecutionInfo executionInfo) { - if (executionInfo == null) { - return null; - } - Node coordinator = executionInfo.getCoordinator(); - if (coordinator == null) { - return null; - } - EndPoint endPoint = coordinator.getEndPoint(); - if (endPoint instanceof DefaultEndPoint) { - // resolve() returns an existing InetSocketAddress, it does not do a dns resolve, - return (InetSocketAddress) endPoint.resolve(); - } - return null; - } -} diff --git a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java index 9e72fba4fa48..f8a5eccd439f 100644 --- a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java @@ -9,8 +9,18 @@ import com.datastax.oss.driver.api.core.CqlIdentifier; import com.datastax.oss.driver.api.core.cql.ExecutionInfo; +import com.datastax.oss.driver.api.core.metadata.EndPoint; +import com.datastax.oss.driver.api.core.metadata.Node; +import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint; +import com.datastax.oss.driver.internal.core.metadata.SniEndPoint; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; +import java.lang.reflect.Field; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.UnknownHostException; import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.annotation.Nullable; final class CassandraSqlAttributesGetter @@ -18,33 +28,91 @@ final class CassandraSqlAttributesGetter // copied from DbIncubatingAttributes.DbSystemIncubatingValues private static final String CASSANDRA = "cassandra"; + private static final Logger logger = + Logger.getLogger(CassandraSqlAttributesGetter.class.getName()); + + private static final Field proxyAddressField = getProxyAddressField(); + @Override public String getDbSystem(CassandraRequest request) { return CASSANDRA; } - @Deprecated @Override @Nullable - public String getUser(CassandraRequest request) { - return null; + public String getDbNamespace(CassandraRequest request) { + return request.getSession().getKeyspace().map(CqlIdentifier::toString).orElse(null); } @Override - @Nullable - public String getDbNamespace(CassandraRequest request) { - return request.getSession().getKeyspace().map(CqlIdentifier::toString).orElse(null); + public Collection getRawQueryTexts(CassandraRequest request) { + return singleton(request.getQueryText()); } - @Deprecated + @Nullable @Override + public String getServerAddress(CassandraRequest request) { + return null; + } + @Nullable - public String getConnectionString(CassandraRequest request) { + @Override + public Integer getServerPort(CassandraRequest request) { return null; } + @Nullable @Override - public Collection getRawQueryTexts(CassandraRequest request) { - return singleton(request.getQueryText()); + public InetSocketAddress getNetworkPeerInetSocketAddress( + CassandraRequest request, @Nullable ExecutionInfo response) { + if (response == null) { + return null; + } + Node coordinator = response.getCoordinator(); + if (coordinator == null) { + return null; + } + EndPoint endPoint = coordinator.getEndPoint(); + InetSocketAddress address = null; + if (endPoint instanceof DefaultEndPoint) { + address = ((DefaultEndPoint) endPoint).resolve(); + } else if (endPoint instanceof SniEndPoint && proxyAddressField != null) { + SniEndPoint sniEndPoint = (SniEndPoint) endPoint; + Object object = null; + try { + object = proxyAddressField.get(sniEndPoint); + } catch (Exception e) { + logger.log( + Level.FINE, + "Error when accessing the private field proxyAddress of SniEndPoint using reflection.", + e); + } + if (object instanceof InetSocketAddress) { + address = (InetSocketAddress) object; + } + } + + // Ensure address is resolved + if (address != null && address.getAddress() == null) { + try { + InetAddress resolved = InetAddress.getByName(address.getHostString()); + return new InetSocketAddress(resolved, address.getPort()); + } catch (UnknownHostException e) { + // If resolution fails, return the unresolved address anyway + return address; + } + } + return address; + } + + @Nullable + private static Field getProxyAddressField() { + try { + Field field = SniEndPoint.class.getDeclaredField("proxyAddress"); + field.setAccessible(true); + return field; + } catch (Exception e) { + return null; + } } } diff --git a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraTelemetryBuilder.java b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraTelemetryBuilder.java index 40e8cccae1d8..d43ac21ce29f 100644 --- a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraTelemetryBuilder.java +++ b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraTelemetryBuilder.java @@ -14,7 +14,6 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor; /** A builder of {@link CassandraTelemetry}. */ public class CassandraTelemetryBuilder { @@ -63,8 +62,6 @@ protected Instrumenter createInstrumenter( .setTableAttribute(DB_CASSANDRA_TABLE) .setStatementSanitizationEnabled(statementSanitizationEnabled) .build()) - .addAttributesExtractor( - NetworkAttributesExtractor.create(new CassandraNetworkAttributesGetter())) .addAttributesExtractor(new CassandraAttributesExtractor()) .addOperationMetrics(DbClientMetrics.get()) .buildInstrumenter(SpanKindExtractor.alwaysClient()); diff --git a/instrumentation/clickhouse/clickhouse-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/common/ClickHouseAttributesGetter.java b/instrumentation/clickhouse/clickhouse-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/common/ClickHouseAttributesGetter.java index 0958b3b46224..7c19f05a006a 100644 --- a/instrumentation/clickhouse/clickhouse-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/common/ClickHouseAttributesGetter.java +++ b/instrumentation/clickhouse/clickhouse-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/common/ClickHouseAttributesGetter.java @@ -43,13 +43,6 @@ public String getDbSystem(ClickHouseDbRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CLICKHOUSE; } - @Deprecated - @Nullable - @Override - public String getUser(ClickHouseDbRequest request) { - return null; - } - @Nullable @Override public String getDbNamespace(ClickHouseDbRequest request) { @@ -60,13 +53,6 @@ public String getDbNamespace(ClickHouseDbRequest request) { return dbName; } - @Deprecated - @Nullable - @Override - public String getConnectionString(ClickHouseDbRequest request) { - return null; - } - @Nullable @Override public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) { diff --git a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseAttributesGetter.java b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseAttributesGetter.java index 8e9378ece407..97291be73a29 100644 --- a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseAttributesGetter.java +++ b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseAttributesGetter.java @@ -7,6 +7,8 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetSocketAddress; +import java.net.SocketAddress; import javax.annotation.Nullable; final class CouchbaseAttributesGetter @@ -18,26 +20,12 @@ public String getDbSystem(CouchbaseRequestInfo couchbaseRequest) { return DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE; } - @Deprecated - @Override - @Nullable - public String getUser(CouchbaseRequestInfo couchbaseRequest) { - return null; - } - @Override @Nullable public String getDbNamespace(CouchbaseRequestInfo couchbaseRequest) { return couchbaseRequest.bucket(); } - @Deprecated - @Override - @Nullable - public String getConnectionString(CouchbaseRequestInfo couchbaseRequest) { - return null; - } - @Override @Nullable public String getDbQueryText(CouchbaseRequestInfo couchbaseRequest) { @@ -49,4 +37,14 @@ public String getDbQueryText(CouchbaseRequestInfo couchbaseRequest) { public String getDbOperationName(CouchbaseRequestInfo couchbaseRequest) { return couchbaseRequest.operation(); } + + @Override + public InetSocketAddress getNetworkPeerInetSocketAddress( + CouchbaseRequestInfo request, @Nullable Void unused) { + SocketAddress address = request.getPeerAddress(); + if (address instanceof InetSocketAddress) { + return (InetSocketAddress) address; + } + return null; + } } diff --git a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetworkAttributesGetter.java b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetworkAttributesGetter.java deleted file mode 100644 index a551acdb322b..000000000000 --- a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetworkAttributesGetter.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0; - -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; -import java.net.InetSocketAddress; -import java.net.SocketAddress; -import javax.annotation.Nullable; - -public class CouchbaseNetworkAttributesGetter - implements NetworkAttributesGetter { - - @Nullable - @Override - public InetSocketAddress getNetworkPeerInetSocketAddress( - CouchbaseRequestInfo couchbaseRequest, @Nullable Void unused) { - SocketAddress peerAddress = couchbaseRequest.getPeerAddress(); - if (peerAddress instanceof InetSocketAddress) { - return (InetSocketAddress) peerAddress; - } - return null; - } -} diff --git a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseSingletons.java b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseSingletons.java index cc8ade755ea5..2da19976743f 100644 --- a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseSingletons.java +++ b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseSingletons.java @@ -13,7 +13,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor; import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; public final class CouchbaseSingletons { @@ -26,13 +25,11 @@ public final class CouchbaseSingletons { CouchbaseAttributesGetter couchbaseAttributesGetter = new CouchbaseAttributesGetter(); SpanNameExtractor spanNameExtractor = new CouchbaseSpanNameExtractor(DbClientSpanNameExtractor.create(couchbaseAttributesGetter)); - CouchbaseNetworkAttributesGetter netAttributesGetter = new CouchbaseNetworkAttributesGetter(); InstrumenterBuilder builder = Instrumenter.builder( GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor) .addAttributesExtractor(DbClientAttributesExtractor.create(couchbaseAttributesGetter)) - .addAttributesExtractor(NetworkAttributesExtractor.create(netAttributesGetter)) .addContextCustomizer( (context, couchbaseRequest, startAttributes) -> CouchbaseRequestInfo.init(context, couchbaseRequest)) diff --git a/instrumentation/elasticsearch/elasticsearch-rest-common-5.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/common/v5_0/internal/ElasticsearchDbAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-rest-common-5.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/common/v5_0/internal/ElasticsearchDbAttributesGetter.java index 26c788f00f31..f7abd7855658 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-common-5.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/common/v5_0/internal/ElasticsearchDbAttributesGetter.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-common-5.0/library/src/main/java/io/opentelemetry/instrumentation/elasticsearch/rest/common/v5_0/internal/ElasticsearchDbAttributesGetter.java @@ -43,26 +43,12 @@ public String getDbSystem(ElasticsearchRestRequest request) { return ELASTICSEARCH; } - @Deprecated - @Override - @Nullable - public String getUser(ElasticsearchRestRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(ElasticsearchRestRequest request) { return null; } - @Deprecated - @Override - @Nullable - public String getConnectionString(ElasticsearchRestRequest request) { - return null; - } - @Override @Nullable public String getDbQueryText(ElasticsearchRestRequest request) { diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java index 90411c26e989..55af352545d8 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java +++ b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java @@ -19,26 +19,12 @@ public String getDbSystem(ElasticTransportRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH; } - @Deprecated - @Override - @Nullable - public String getUser(ElasticTransportRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(ElasticTransportRequest request) { return null; } - @Deprecated - @Override - @Nullable - public String getConnectionString(ElasticTransportRequest request) { - return null; - } - @Override @Nullable public String getDbQueryText(ElasticTransportRequest request) { diff --git a/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeDbAttributesGetter.java b/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeDbAttributesGetter.java index 4e7fed452592..6ede8c66ff5c 100644 --- a/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeDbAttributesGetter.java +++ b/instrumentation/geode-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/geode/GeodeDbAttributesGetter.java @@ -22,26 +22,12 @@ public String getDbSystem(GeodeRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.GEODE; } - @Deprecated - @Override - @Nullable - public String getUser(GeodeRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(GeodeRequest request) { return request.getRegion().getName(); } - @Deprecated - @Override - @Nullable - public String getConnectionString(GeodeRequest request) { - return null; - } - @Override @Nullable public String getDbQueryText(GeodeRequest request) { diff --git a/instrumentation/influxdb-2.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/influxdb/v2_4/InfluxDbAttributesGetter.java b/instrumentation/influxdb-2.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/influxdb/v2_4/InfluxDbAttributesGetter.java index a4c5ef73c0be..26526f5c064d 100644 --- a/instrumentation/influxdb-2.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/influxdb/v2_4/InfluxDbAttributesGetter.java +++ b/instrumentation/influxdb-2.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/influxdb/v2_4/InfluxDbAttributesGetter.java @@ -30,24 +30,10 @@ public String getDbSystem(InfluxDbRequest request) { return "influxdb"; } - @Deprecated - @Nullable - @Override - public String getUser(InfluxDbRequest request) { - return null; - } - @Nullable @Override public String getDbNamespace(InfluxDbRequest request) { String dbName = request.getDbName(); return "".equals(dbName) ? null : dbName; } - - @Deprecated - @Nullable - @Override - public String getConnectionString(InfluxDbRequest influxDbRequest) { - return null; - } } diff --git a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java index 4ecd74a7738d..1606f75daa9c 100644 --- a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java +++ b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java @@ -14,8 +14,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.internal.cache.Cache; import io.opentelemetry.instrumentation.jdbc.internal.DbRequest; +import io.opentelemetry.instrumentation.jdbc.internal.JdbcAttributesGetter; import io.opentelemetry.instrumentation.jdbc.internal.JdbcInstrumenterFactory; -import io.opentelemetry.instrumentation.jdbc.internal.JdbcNetworkAttributesGetter; import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; import io.opentelemetry.javaagent.bootstrap.jdbc.DbInfo; @@ -37,10 +37,9 @@ public final class JdbcSingletons { public static final boolean CAPTURE_QUERY_PARAMETERS; static { - JdbcNetworkAttributesGetter netAttributesGetter = new JdbcNetworkAttributesGetter(); AttributesExtractor peerServiceExtractor = PeerServiceAttributesExtractor.create( - netAttributesGetter, AgentCommonConfig.get().getPeerServiceResolver()); + new JdbcAttributesGetter(), AgentCommonConfig.get().getPeerServiceResolver()); CAPTURE_QUERY_PARAMETERS = AgentInstrumentationConfig.get() diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java index 0792c1db7afa..8bbf9cb987dd 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java @@ -12,7 +12,11 @@ import java.util.Map; import javax.annotation.Nullable; -final class JdbcAttributesGetter implements SqlClientAttributesGetter { +/** + * This class is internal and is hence not for public use. Its APIs are unstable and can change at + * any time. + */ +public final class JdbcAttributesGetter implements SqlClientAttributesGetter { @Nullable @Override @@ -64,4 +68,16 @@ public String getResponseStatus(@Nullable Void response, @Nullable Throwable err public Map getQueryParameters(DbRequest request) { return request.getPreparedStatementParameters(); } + + @Nullable + @Override + public String getServerAddress(DbRequest request) { + return request.getDbInfo().getHost(); + } + + @Nullable + @Override + public Integer getServerPort(DbRequest request) { + return request.getDbInfo().getPort(); + } } diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java index ce9bd75a0bdc..40392960ab04 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java @@ -17,7 +17,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil; -import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor; import io.opentelemetry.instrumentation.jdbc.internal.dbinfo.DbInfo; import java.util.List; import javax.sql.DataSource; @@ -29,8 +28,6 @@ public final class JdbcInstrumenterFactory { public static final String INSTRUMENTATION_NAME = "io.opentelemetry.jdbc"; private static final JdbcAttributesGetter dbAttributesGetter = new JdbcAttributesGetter(); - private static final JdbcNetworkAttributesGetter netAttributesGetter = - new JdbcNetworkAttributesGetter(); public static boolean captureQueryParameters() { return ConfigPropertiesUtil.getBoolean( @@ -77,7 +74,6 @@ public static Instrumenter createStatementInstrumenter( .setStatementSanitizationEnabled(statementSanitizationEnabled) .setCaptureQueryParameters(captureQueryParameters) .build()) - .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractors(extractors) .addOperationMetrics(DbClientMetrics.get()) .setEnabled(enabled) @@ -116,7 +112,6 @@ public static Instrumenter createTransactionInstrumenter( openTelemetry, INSTRUMENTATION_NAME, DbRequest::getOperation) .addAttributesExtractor(SqlClientAttributesExtractor.builder(dbAttributesGetter).build()) .addAttributesExtractor(TransactionAttributeExtractor.INSTANCE) - .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractors(extractors) .setEnabled(enabled) .buildInstrumenter(SpanKindExtractor.alwaysClient()); diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetworkAttributesGetter.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetworkAttributesGetter.java deleted file mode 100644 index a09ca312672b..000000000000 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetworkAttributesGetter.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.jdbc.internal; - -import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter; -import javax.annotation.Nullable; - -/** - * This class is internal and is hence not for public use. Its APIs are unstable and can change at - * any time. - */ -public final class JdbcNetworkAttributesGetter implements ServerAttributesGetter { - - @Nullable - @Override - public String getServerAddress(DbRequest request) { - return request.getDbInfo().getHost(); - } - - @Nullable - @Override - public Integer getServerPort(DbRequest request) { - return request.getDbInfo().getPort(); - } -} diff --git a/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisDbAttributesGetter.java b/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisDbAttributesGetter.java index 1514d62d6334..7d0c1ae3e9f8 100644 --- a/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisDbAttributesGetter.java +++ b/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisDbAttributesGetter.java @@ -9,7 +9,6 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.RedisCommandSanitizer; import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; -import javax.annotation.Nullable; final class JedisDbAttributesGetter implements DbClientAttributesGetter { @@ -21,24 +20,11 @@ public String getDbSystem(JedisRequest request) { return DbIncubatingAttributes.DbSystemNameIncubatingValues.REDIS; } - @Deprecated - @Override - @Nullable - public String getUser(JedisRequest request) { - return null; - } - @Override public String getDbNamespace(JedisRequest request) { return null; } - @Deprecated - @Override - public String getConnectionString(JedisRequest request) { - return null; - } - @Override public String getDbQueryText(JedisRequest request) { return sanitizer.sanitize(request.getCommand().name(), request.getArgs()); diff --git a/instrumentation/jedis/jedis-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v3_0/JedisDbAttributesGetter.java b/instrumentation/jedis/jedis-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v3_0/JedisDbAttributesGetter.java index 74393542aaea..bc787db69c24 100644 --- a/instrumentation/jedis/jedis-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v3_0/JedisDbAttributesGetter.java +++ b/instrumentation/jedis/jedis-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v3_0/JedisDbAttributesGetter.java @@ -7,7 +7,6 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; -import javax.annotation.Nullable; final class JedisDbAttributesGetter implements DbClientAttributesGetter { @@ -17,24 +16,11 @@ public String getDbSystem(JedisRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } - @Deprecated - @Override - @Nullable - public String getUser(JedisRequest request) { - return null; - } - @Override public String getDbNamespace(JedisRequest request) { return null; } - @Deprecated - @Override - public String getConnectionString(JedisRequest request) { - return null; - } - @Override public String getDbQueryText(JedisRequest request) { return request.getStatement(); diff --git a/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisDbAttributesGetter.java b/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisDbAttributesGetter.java index 56e009c445d4..10f7fde7f7e1 100644 --- a/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisDbAttributesGetter.java +++ b/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisDbAttributesGetter.java @@ -7,6 +7,8 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetSocketAddress; +import java.net.SocketAddress; import javax.annotation.Nullable; final class JedisDbAttributesGetter implements DbClientAttributesGetter { @@ -17,24 +19,11 @@ public String getDbSystem(JedisRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } - @Deprecated - @Override - @Nullable - public String getUser(JedisRequest request) { - return null; - } - @Override public String getDbNamespace(JedisRequest request) { return null; } - @Deprecated - @Override - public String getConnectionString(JedisRequest request) { - return null; - } - @Override public String getDbQueryText(JedisRequest request) { return request.getStatement(); @@ -44,4 +33,14 @@ public String getDbQueryText(JedisRequest request) { public String getDbOperationName(JedisRequest request) { return request.getOperation(); } + + @Override + public InetSocketAddress getNetworkPeerInetSocketAddress( + JedisRequest request, @Nullable Void unused) { + SocketAddress address = request.getRemoteSocketAddress(); + if (address instanceof InetSocketAddress) { + return (InetSocketAddress) address; + } + return null; + } } diff --git a/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetworkAttributesGetter.java b/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetworkAttributesGetter.java deleted file mode 100644 index 900ba8e08e69..000000000000 --- a/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetworkAttributesGetter.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.jedis.v4_0; - -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; -import java.net.InetSocketAddress; -import java.net.SocketAddress; -import javax.annotation.Nullable; - -final class JedisNetworkAttributesGetter implements NetworkAttributesGetter { - - @Override - @Nullable - public InetSocketAddress getNetworkPeerInetSocketAddress( - JedisRequest jedisRequest, @Nullable Void unused) { - SocketAddress socketAddress = jedisRequest.getRemoteSocketAddress(); - if (socketAddress instanceof InetSocketAddress) { - return (InetSocketAddress) socketAddress; - } - return null; - } -} diff --git a/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisSingletons.java b/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisSingletons.java index 0deb8829c628..46f5bb11e31f 100644 --- a/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisSingletons.java +++ b/instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisSingletons.java @@ -11,7 +11,6 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor; public final class JedisSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jedis-4.0"; @@ -20,7 +19,6 @@ public final class JedisSingletons { static { JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter(); - JedisNetworkAttributesGetter netAttributesGetter = new JedisNetworkAttributesGetter(); INSTRUMENTER = Instrumenter.builder( @@ -28,7 +26,6 @@ public final class JedisSingletons { INSTRUMENTATION_NAME, DbClientSpanNameExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) - .addAttributesExtractor(NetworkAttributesExtractor.create(netAttributesGetter)) .addOperationMetrics(DbClientMetrics.get()) .buildInstrumenter(SpanKindExtractor.alwaysClient()); } diff --git a/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceDbAttributesGetter.java b/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceDbAttributesGetter.java index e57379f762fa..9c05ccc6e7c8 100644 --- a/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceDbAttributesGetter.java +++ b/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceDbAttributesGetter.java @@ -19,26 +19,12 @@ public String getDbSystem(RedisCommand request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } - @Deprecated - @Override - @Nullable - public String getUser(RedisCommand request) { - return null; - } - @Override @Nullable public String getDbNamespace(RedisCommand request) { return null; } - @Deprecated - @Override - @Nullable - public String getConnectionString(RedisCommand request) { - return null; - } - @Override @Nullable public String getDbQueryText(RedisCommand request) { diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceDbAttributesGetter.java b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceDbAttributesGetter.java index 0d85f4ca2dd2..ca3025b4a6c1 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceDbAttributesGetter.java +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceDbAttributesGetter.java @@ -27,13 +27,6 @@ public String getDbSystem(RedisCommand request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } - @Deprecated - @Override - @Nullable - public String getUser(RedisCommand request) { - return null; - } - @Override @Nullable public String getDbNamespace(RedisCommand request) { @@ -41,12 +34,6 @@ public String getDbNamespace(RedisCommand request) { } @Deprecated - @Override - @Nullable - public String getConnectionString(RedisCommand request) { - return null; - } - @Override public String getDbQueryText(RedisCommand request) { String command = LettuceInstrumentationUtil.getCommandName(request); diff --git a/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoDbAttributesGetter.java b/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoDbAttributesGetter.java index e22d8baede28..7c7bc9886362 100644 --- a/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoDbAttributesGetter.java +++ b/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoDbAttributesGetter.java @@ -55,13 +55,6 @@ public String getDbSystem(CommandStartedEvent event) { return MONGODB; } - @Deprecated - @Override - @Nullable - public String getUser(CommandStartedEvent event) { - return null; - } - @Override @Nullable public String getDbNamespace(CommandStartedEvent event) { diff --git a/instrumentation/opensearch/opensearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/OpenSearchRestAttributesGetter.java b/instrumentation/opensearch/opensearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/OpenSearchRestAttributesGetter.java index 8175330c28dc..f8c7ab42f0f3 100644 --- a/instrumentation/opensearch/opensearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/OpenSearchRestAttributesGetter.java +++ b/instrumentation/opensearch/opensearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/OpenSearchRestAttributesGetter.java @@ -20,26 +20,12 @@ public String getDbSystem(OpenSearchRestRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.OPENSEARCH; } - @Deprecated - @Override - @Nullable - public String getUser(OpenSearchRestRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(OpenSearchRestRequest request) { return null; } - @Deprecated - @Override - @Nullable - public String getConnectionString(OpenSearchRestRequest request) { - return null; - } - @Override @Nullable public String getDbQueryText(OpenSearchRestRequest request) { diff --git a/instrumentation/r2dbc-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/r2dbc/v1_0/R2dbcSingletons.java b/instrumentation/r2dbc-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/r2dbc/v1_0/R2dbcSingletons.java index b443d2eded13..13a5b6343f8d 100644 --- a/instrumentation/r2dbc-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/r2dbc/v1_0/R2dbcSingletons.java +++ b/instrumentation/r2dbc-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/r2dbc/v1_0/R2dbcSingletons.java @@ -10,7 +10,7 @@ import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.R2dbcTelemetry; import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.R2dbcTelemetryBuilder; import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.internal.Experimental; -import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.internal.R2dbcNetAttributesGetter; +import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.internal.R2dbcSqlAttributesGetter; import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; @@ -28,7 +28,7 @@ public final class R2dbcSingletons { AgentCommonConfig.get().isStatementSanitizationEnabled())) .addAttributesExtractor( PeerServiceAttributesExtractor.create( - R2dbcNetAttributesGetter.INSTANCE, + R2dbcSqlAttributesGetter.INSTANCE, AgentCommonConfig.get().getPeerServiceResolver())); Experimental.setEnableSqlCommenter( builder, diff --git a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java index 3a8c90d3e48b..372aa734d976 100644 --- a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java +++ b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java @@ -14,7 +14,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor; import java.util.ArrayList; import java.util.List; import java.util.function.UnaryOperator; @@ -46,6 +45,7 @@ public R2dbcInstrumenterBuilder addAttributesExtractor( public Instrumenter build( UnaryOperator> spanNameExtractorTransformer, boolean statementSanitizationEnabled) { + SpanNameExtractor spanNameExtractor = spanNameExtractorTransformer.apply( DbClientSpanNameExtractor.create(R2dbcSqlAttributesGetter.INSTANCE)); @@ -56,7 +56,6 @@ public Instrumenter build( SqlClientAttributesExtractor.builder(R2dbcSqlAttributesGetter.INSTANCE) .setStatementSanitizationEnabled(statementSanitizationEnabled) .build()) - .addAttributesExtractor(ServerAttributesExtractor.create(R2dbcNetAttributesGetter.INSTANCE)) .addAttributesExtractors(additionalExtractors) .addOperationMetrics(DbClientMetrics.get()) .buildInstrumenter(SpanKindExtractor.alwaysClient()); diff --git a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcNetAttributesGetter.java b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcNetAttributesGetter.java deleted file mode 100644 index a50799c26984..000000000000 --- a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcNetAttributesGetter.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.r2dbc.v1_0.internal; - -import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter; -import javax.annotation.Nullable; - -/** - * This class is internal and is hence not for public use. Its APIs are unstable and can change at - * any time. - */ -public enum R2dbcNetAttributesGetter implements ServerAttributesGetter { - INSTANCE; - - @Nullable - @Override - public String getServerAddress(DbExecution request) { - return request.getHost(); - } - - @Nullable - @Override - public Integer getServerPort(DbExecution request) { - return request.getPort(); - } -} diff --git a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcSqlAttributesGetter.java b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcSqlAttributesGetter.java index 8184434bbb93..21daf6ec0085 100644 --- a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcSqlAttributesGetter.java +++ b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcSqlAttributesGetter.java @@ -57,4 +57,16 @@ public String getResponseStatus(@Nullable Void response, @Nullable Throwable err } return null; } + + @Nullable + @Override + public String getServerAddress(DbExecution request) { + return request.getHost(); + } + + @Nullable + @Override + public Integer getServerPort(DbExecution request) { + return request.getPort(); + } } diff --git a/instrumentation/rediscala-1.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rediscala/RediscalaAttributesGetter.java b/instrumentation/rediscala-1.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rediscala/RediscalaAttributesGetter.java index 3936dbc0efe9..ad33295605b2 100644 --- a/instrumentation/rediscala-1.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rediscala/RediscalaAttributesGetter.java +++ b/instrumentation/rediscala-1.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rediscala/RediscalaAttributesGetter.java @@ -20,26 +20,12 @@ public String getDbSystem(RedisCommand redisCommand) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } - @Deprecated - @Override - @Nullable - public String getUser(RedisCommand redisCommand) { - return null; - } - @Override @Nullable public String getDbNamespace(RedisCommand redisCommand) { return null; } - @Deprecated - @Override - @Nullable - public String getConnectionString(RedisCommand redisCommand) { - return null; - } - @Override @Nullable public String getDbQueryText(RedisCommand redisCommand) { diff --git a/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonDbAttributesGetter.java b/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonDbAttributesGetter.java index eece9af720b3..62506b424af5 100644 --- a/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonDbAttributesGetter.java +++ b/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonDbAttributesGetter.java @@ -7,6 +7,7 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetSocketAddress; import javax.annotation.Nullable; final class RedissonDbAttributesGetter implements DbClientAttributesGetter { @@ -17,13 +18,6 @@ public String getDbSystem(RedissonRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } - @Deprecated - @Nullable - @Override - public String getUser(RedissonRequest request) { - return null; - } - @Nullable @Override public String getDbNamespace(RedissonRequest request) { @@ -31,11 +25,6 @@ public String getDbNamespace(RedissonRequest request) { } @Deprecated - @Override - public String getConnectionString(RedissonRequest request) { - return null; - } - @Override public String getDbQueryText(RedissonRequest request) { return request.getStatement(); @@ -46,4 +35,10 @@ public String getDbQueryText(RedissonRequest request) { public String getDbOperationName(RedissonRequest request) { return request.getOperation(); } + + @Override + public InetSocketAddress getNetworkPeerInetSocketAddress( + RedissonRequest request, @Nullable Void unused) { + return request.getAddress(); + } } diff --git a/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonInstrumenterFactory.java b/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonInstrumenterFactory.java index d4e380615d09..79b14c9681f5 100644 --- a/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonInstrumenterFactory.java +++ b/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonInstrumenterFactory.java @@ -11,20 +11,17 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesExtractor; public final class RedissonInstrumenterFactory { public static Instrumenter createInstrumenter(String instrumentationName) { RedissonDbAttributesGetter dbAttributesGetter = new RedissonDbAttributesGetter(); - RedissonNetAttributesGetter netAttributesGetter = new RedissonNetAttributesGetter(); return Instrumenter.builder( GlobalOpenTelemetry.get(), instrumentationName, DbClientSpanNameExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) - .addAttributesExtractor(NetworkAttributesExtractor.create(netAttributesGetter)) .addOperationMetrics(DbClientMetrics.get()) .buildInstrumenter(SpanKindExtractor.alwaysClient()); } diff --git a/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonNetAttributesGetter.java b/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonNetAttributesGetter.java deleted file mode 100644 index a1739cff1104..000000000000 --- a/instrumentation/redisson/redisson-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/RedissonNetAttributesGetter.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.redisson; - -import io.opentelemetry.instrumentation.api.semconv.network.NetworkAttributesGetter; -import java.net.InetSocketAddress; -import javax.annotation.Nullable; - -final class RedissonNetAttributesGetter implements NetworkAttributesGetter { - - @Override - public InetSocketAddress getNetworkPeerInetSocketAddress( - RedissonRequest request, @Nullable Void unused) { - return request.getAddress(); - } -} diff --git a/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/SpymemcachedAttributesGetter.java b/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/SpymemcachedAttributesGetter.java index 6eed4eb79d6f..7d3653a910ee 100644 --- a/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/SpymemcachedAttributesGetter.java +++ b/instrumentation/spymemcached-2.12/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spymemcached/SpymemcachedAttributesGetter.java @@ -16,13 +16,6 @@ public String getDbSystem(SpymemcachedRequest spymemcachedRequest) { return "memcached"; } - @Deprecated - @Override - @Nullable - public String getUser(SpymemcachedRequest spymemcachedRequest) { - return null; - } - @Override @Nullable public String getDbNamespace(SpymemcachedRequest spymemcachedRequest) { @@ -30,12 +23,6 @@ public String getDbNamespace(SpymemcachedRequest spymemcachedRequest) { } @Deprecated - @Override - @Nullable - public String getConnectionString(SpymemcachedRequest spymemcachedRequest) { - return null; - } - @Override @Nullable public String getDbQueryText(SpymemcachedRequest spymemcachedRequest) { diff --git a/instrumentation/vertx/vertx-sql-client/vertx-sql-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/sql/VertxSqlClientAttributesGetter.java b/instrumentation/vertx/vertx-sql-client/vertx-sql-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/sql/VertxSqlClientAttributesGetter.java index 339393f94c38..d3f153613ceb 100644 --- a/instrumentation/vertx/vertx-sql-client/vertx-sql-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/sql/VertxSqlClientAttributesGetter.java +++ b/instrumentation/vertx/vertx-sql-client/vertx-sql-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/sql/VertxSqlClientAttributesGetter.java @@ -41,11 +41,16 @@ public String getDbNamespace(VertxSqlClientRequest request) { return request.getDatabase(); } - @Deprecated + @Nullable @Override + public String getServerAddress(VertxSqlClientRequest request) { + return request.getHost(); + } + @Nullable - public String getConnectionString(VertxSqlClientRequest request) { - return null; + @Override + public Integer getServerPort(VertxSqlClientRequest request) { + return request.getPort(); } @Override From a6bef40e3b7bf5e751f53d343bb23128dc11c6a5 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Mon, 27 Oct 2025 13:36:36 -0700 Subject: [PATCH 3/7] Fix R2dbcStatementTest to use R2dbcSqlAttributesGetter instead of deleted R2dbcNetAttributesGetter --- .../instrumentation/r2dbc/v1_0/R2dbcStatementTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/r2dbc-1.0/library/src/test/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcStatementTest.java b/instrumentation/r2dbc-1.0/library/src/test/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcStatementTest.java index 019bfb535afa..4bb84b0765a4 100644 --- a/instrumentation/r2dbc-1.0/library/src/test/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcStatementTest.java +++ b/instrumentation/r2dbc-1.0/library/src/test/java/io/opentelemetry/instrumentation/r2dbc/v1_0/R2dbcStatementTest.java @@ -7,7 +7,7 @@ import io.opentelemetry.instrumentation.api.incubator.semconv.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.incubator.semconv.net.PeerServiceResolver; -import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.R2dbcNetAttributesGetter; +import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.R2dbcSqlAttributesGetter; import io.opentelemetry.instrumentation.reactor.v3_1.ContextPropagationOperator; import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension; @@ -53,7 +53,7 @@ protected ConnectionFactory createProxyConnectionFactory( return R2dbcTelemetry.builder(testing.getOpenTelemetry()) .addAttributesExtractor( PeerServiceAttributesExtractor.create( - R2dbcNetAttributesGetter.INSTANCE, PeerServiceResolver.create(peerServiceMapping))) + R2dbcSqlAttributesGetter.INSTANCE, PeerServiceResolver.create(peerServiceMapping))) .build() .wrapConnectionFactory( super.createProxyConnectionFactory(connectionFactoryOptions), connectionFactoryOptions); From 4fb938db75e8b963d533bdec0f6cc5dc5d4e3ab4 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Mon, 27 Oct 2025 15:56:54 -0700 Subject: [PATCH 4/7] updates --- .../javaagent/instrumentation/jdbc/JdbcSingletons.java | 2 +- .../jdbc/internal/JdbcAttributesGetter.java | 2 ++ .../jdbc/internal/JdbcInstrumenterFactory.java | 7 +++---- .../r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java | 1 - 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java index 1606f75daa9c..759a183012e7 100644 --- a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java +++ b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcSingletons.java @@ -39,7 +39,7 @@ public final class JdbcSingletons { static { AttributesExtractor peerServiceExtractor = PeerServiceAttributesExtractor.create( - new JdbcAttributesGetter(), AgentCommonConfig.get().getPeerServiceResolver()); + JdbcAttributesGetter.INSTANCE, AgentCommonConfig.get().getPeerServiceResolver()); CAPTURE_QUERY_PARAMETERS = AgentInstrumentationConfig.get() diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java index 8bbf9cb987dd..c58ee4cee4ae 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcAttributesGetter.java @@ -18,6 +18,8 @@ */ public final class JdbcAttributesGetter implements SqlClientAttributesGetter { + public static final JdbcAttributesGetter INSTANCE = new JdbcAttributesGetter(); + @Nullable @Override public String getDbSystem(DbRequest request) { diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java index 40392960ab04..29cbef37d8bb 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java @@ -27,7 +27,6 @@ */ public final class JdbcInstrumenterFactory { public static final String INSTRUMENTATION_NAME = "io.opentelemetry.jdbc"; - private static final JdbcAttributesGetter dbAttributesGetter = new JdbcAttributesGetter(); public static boolean captureQueryParameters() { return ConfigPropertiesUtil.getBoolean( @@ -68,9 +67,9 @@ public static Instrumenter createStatementInstrumenter( return Instrumenter.builder( openTelemetry, INSTRUMENTATION_NAME, - DbClientSpanNameExtractor.create(dbAttributesGetter)) + DbClientSpanNameExtractor.create(JdbcAttributesGetter.INSTANCE)) .addAttributesExtractor( - SqlClientAttributesExtractor.builder(dbAttributesGetter) + SqlClientAttributesExtractor.builder(JdbcAttributesGetter.INSTANCE) .setStatementSanitizationEnabled(statementSanitizationEnabled) .setCaptureQueryParameters(captureQueryParameters) .build()) @@ -110,7 +109,7 @@ public static Instrumenter createTransactionInstrumenter( boolean enabled) { return Instrumenter.builder( openTelemetry, INSTRUMENTATION_NAME, DbRequest::getOperation) - .addAttributesExtractor(SqlClientAttributesExtractor.builder(dbAttributesGetter).build()) + .addAttributesExtractor(SqlClientAttributesExtractor.builder(JdbcAttributesGetter.INSTANCE).build()) .addAttributesExtractor(TransactionAttributeExtractor.INSTANCE) .addAttributesExtractors(extractors) .setEnabled(enabled) diff --git a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java index 372aa734d976..6c5354efbf95 100644 --- a/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java +++ b/instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcInstrumenterBuilder.java @@ -45,7 +45,6 @@ public R2dbcInstrumenterBuilder addAttributesExtractor( public Instrumenter build( UnaryOperator> spanNameExtractorTransformer, boolean statementSanitizationEnabled) { - SpanNameExtractor spanNameExtractor = spanNameExtractorTransformer.apply( DbClientSpanNameExtractor.create(R2dbcSqlAttributesGetter.INSTANCE)); From 1a268262956188b4d25c5edcd5f2c569d55ec365 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Mon, 27 Oct 2025 16:45:34 -0700 Subject: [PATCH 5/7] spotless --- .../instrumentation/jdbc/internal/JdbcInstrumenterFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java index 29cbef37d8bb..9748181d713e 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java @@ -109,7 +109,8 @@ public static Instrumenter createTransactionInstrumenter( boolean enabled) { return Instrumenter.builder( openTelemetry, INSTRUMENTATION_NAME, DbRequest::getOperation) - .addAttributesExtractor(SqlClientAttributesExtractor.builder(JdbcAttributesGetter.INSTANCE).build()) + .addAttributesExtractor( + SqlClientAttributesExtractor.builder(JdbcAttributesGetter.INSTANCE).build()) .addAttributesExtractor(TransactionAttributeExtractor.INSTANCE) .addAttributesExtractors(extractors) .setEnabled(enabled) From a6d896c0bae348d8d8374a8cc698d3f143c94dbf Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Mon, 27 Oct 2025 16:59:51 -0700 Subject: [PATCH 6/7] less --- .../v3_0/CassandraSqlAttributesGetter.java | 25 +------- .../v4_0/CassandraSqlAttributesGetter.java | 31 +++------- .../v4_4/CassandraSqlAttributesGetter.java | 59 ++----------------- 3 files changed, 16 insertions(+), 99 deletions(-) diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java index 3651ea15f4b2..b35fa361ef6f 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java @@ -8,12 +8,9 @@ import static java.util.Collections.singleton; import com.datastax.driver.core.ExecutionInfo; -import com.datastax.driver.core.Host; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; -import java.net.InetAddress; import java.net.InetSocketAddress; -import java.net.UnknownHostException; import java.util.Collection; import javax.annotation.Nullable; @@ -52,25 +49,7 @@ public Integer getServerPort(CassandraRequest request) { @Nullable @Override public InetSocketAddress getNetworkPeerInetSocketAddress( - CassandraRequest request, @Nullable ExecutionInfo response) { - if (response == null) { - return null; - } - Host queriedHost = response.getQueriedHost(); - if (queriedHost == null) { - return null; - } - InetSocketAddress address = queriedHost.getSocketAddress(); - if (address != null && address.getAddress() == null) { - // Address is unresolved, need to resolve it explicitly - try { - InetAddress resolved = InetAddress.getByName(address.getHostString()); - return new InetSocketAddress(resolved, address.getPort()); - } catch (UnknownHostException e) { - // If resolution fails, return the unresolved address anyway - return address; - } - } - return address; + CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + return executionInfo == null ? null : executionInfo.getQueriedHost().getSocketAddress(); } } diff --git a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java index 36e6512313da..3360ed01dc5d 100644 --- a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java @@ -9,14 +9,11 @@ import com.datastax.oss.driver.api.core.CqlIdentifier; import com.datastax.oss.driver.api.core.cql.ExecutionInfo; -import com.datastax.oss.driver.api.core.metadata.EndPoint; import com.datastax.oss.driver.api.core.metadata.Node; -import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; -import java.net.InetAddress; import java.net.InetSocketAddress; -import java.net.UnknownHostException; +import java.net.SocketAddress; import java.util.Collection; import javax.annotation.Nullable; @@ -55,29 +52,17 @@ public Integer getServerPort(CassandraRequest request) { @Nullable @Override public InetSocketAddress getNetworkPeerInetSocketAddress( - CassandraRequest request, @Nullable ExecutionInfo response) { - if (response == null) { + CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + if (executionInfo == null) { return null; } - Node coordinator = response.getCoordinator(); + Node coordinator = executionInfo.getCoordinator(); if (coordinator == null) { return null; } - EndPoint endPoint = coordinator.getEndPoint(); - if (endPoint instanceof DefaultEndPoint) { - InetSocketAddress address = ((DefaultEndPoint) endPoint).resolve(); - if (address != null && address.getAddress() == null) { - // Address is unresolved, need to resolve it explicitly - try { - InetAddress resolved = InetAddress.getByName(address.getHostString()); - return new InetSocketAddress(resolved, address.getPort()); - } catch (UnknownHostException e) { - // If resolution fails, return the unresolved address anyway - return address; - } - } - return address; - } - return null; + // resolve() returns an existing InetSocketAddress, it does not do a dns resolve, + // at least in the only current EndPoint implementation (DefaultEndPoint) + SocketAddress address = coordinator.getEndPoint().resolve(); + return address instanceof InetSocketAddress ? (InetSocketAddress) address : null; } } diff --git a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java index f8a5eccd439f..e23a5343aa88 100644 --- a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java @@ -12,15 +12,9 @@ import com.datastax.oss.driver.api.core.metadata.EndPoint; import com.datastax.oss.driver.api.core.metadata.Node; import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint; -import com.datastax.oss.driver.internal.core.metadata.SniEndPoint; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; -import java.lang.reflect.Field; -import java.net.InetAddress; import java.net.InetSocketAddress; -import java.net.UnknownHostException; import java.util.Collection; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.annotation.Nullable; final class CassandraSqlAttributesGetter @@ -28,11 +22,6 @@ final class CassandraSqlAttributesGetter // copied from DbIncubatingAttributes.DbSystemIncubatingValues private static final String CASSANDRA = "cassandra"; - private static final Logger logger = - Logger.getLogger(CassandraSqlAttributesGetter.class.getName()); - - private static final Field proxyAddressField = getProxyAddressField(); - @Override public String getDbSystem(CassandraRequest request) { return CASSANDRA; @@ -64,55 +53,19 @@ public Integer getServerPort(CassandraRequest request) { @Nullable @Override public InetSocketAddress getNetworkPeerInetSocketAddress( - CassandraRequest request, @Nullable ExecutionInfo response) { - if (response == null) { + CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + if (executionInfo == null) { return null; } - Node coordinator = response.getCoordinator(); + Node coordinator = executionInfo.getCoordinator(); if (coordinator == null) { return null; } EndPoint endPoint = coordinator.getEndPoint(); - InetSocketAddress address = null; if (endPoint instanceof DefaultEndPoint) { - address = ((DefaultEndPoint) endPoint).resolve(); - } else if (endPoint instanceof SniEndPoint && proxyAddressField != null) { - SniEndPoint sniEndPoint = (SniEndPoint) endPoint; - Object object = null; - try { - object = proxyAddressField.get(sniEndPoint); - } catch (Exception e) { - logger.log( - Level.FINE, - "Error when accessing the private field proxyAddress of SniEndPoint using reflection.", - e); - } - if (object instanceof InetSocketAddress) { - address = (InetSocketAddress) object; - } - } - - // Ensure address is resolved - if (address != null && address.getAddress() == null) { - try { - InetAddress resolved = InetAddress.getByName(address.getHostString()); - return new InetSocketAddress(resolved, address.getPort()); - } catch (UnknownHostException e) { - // If resolution fails, return the unresolved address anyway - return address; - } - } - return address; - } - - @Nullable - private static Field getProxyAddressField() { - try { - Field field = SniEndPoint.class.getDeclaredField("proxyAddress"); - field.setAccessible(true); - return field; - } catch (Exception e) { - return null; + // resolve() returns an existing InetSocketAddress, it does not do a dns resolve, + return (InetSocketAddress) endPoint.resolve(); } + return null; } } From ff16c1d2c6306921be9d790f5ad0ccccc5b396e9 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Mon, 27 Oct 2025 17:08:51 -0700 Subject: [PATCH 7/7] up --- .../cassandra/v3_0/CassandraSqlAttributesGetter.java | 12 ------------ .../cassandra/v4_0/CassandraSqlAttributesGetter.java | 12 ------------ .../cassandra/v4_4/CassandraSqlAttributesGetter.java | 12 ------------ 3 files changed, 36 deletions(-) diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java index b35fa361ef6f..170b40528f4b 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSqlAttributesGetter.java @@ -34,18 +34,6 @@ public Collection getRawQueryTexts(CassandraRequest request) { return singleton(request.getQueryText()); } - @Nullable - @Override - public String getServerAddress(CassandraRequest request) { - return null; - } - - @Nullable - @Override - public Integer getServerPort(CassandraRequest request) { - return null; - } - @Nullable @Override public InetSocketAddress getNetworkPeerInetSocketAddress( diff --git a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java index 3360ed01dc5d..ca81cd21c066 100644 --- a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraSqlAttributesGetter.java @@ -37,18 +37,6 @@ public Collection getRawQueryTexts(CassandraRequest request) { return singleton(request.getQueryText()); } - @Nullable - @Override - public String getServerAddress(CassandraRequest request) { - return null; - } - - @Nullable - @Override - public Integer getServerPort(CassandraRequest request) { - return null; - } - @Nullable @Override public InetSocketAddress getNetworkPeerInetSocketAddress( diff --git a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java index e23a5343aa88..d1736b8f4fc6 100644 --- a/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraSqlAttributesGetter.java @@ -38,18 +38,6 @@ public Collection getRawQueryTexts(CassandraRequest request) { return singleton(request.getQueryText()); } - @Nullable - @Override - public String getServerAddress(CassandraRequest request) { - return null; - } - - @Nullable - @Override - public Integer getServerPort(CassandraRequest request) { - return null; - } - @Nullable @Override public InetSocketAddress getNetworkPeerInetSocketAddress(