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..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 @@ -6,15 +6,24 @@ 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 io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesExtractor; +import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalNetworkAttributesExtractor; +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; + private final InternalNetworkAttributesExtractor internalNetworkExtractor; + private final ServerAttributesExtractor serverAttributesExtractor; /** Creates the database client attributes extractor with default configuration. */ public static AttributesExtractor create( @@ -39,21 +56,59 @@ public static AttributesExtractor create( } DbClientAttributesExtractor(DbClientAttributesGetter getter) { - super(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) { - super.onStart(attributes, parentContext, request); - if (SemconvStability.emitStableDatabaseSemconv()) { + 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)); 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)); } + serverAttributesExtractor.onStart(attributes, parentContext, request); + } + + @Override + public void onEnd( + AttributesBuilder attributes, + Context context, + 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()); + } + 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..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; /** @@ -19,29 +21,62 @@ * OpenTelemetry specification. */ 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. */ @@ -56,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/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..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 @@ -7,18 +7,27 @@ 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.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; +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 +70,9 @@ public static SqlClientAttributesExtractorBuilder getter; + private final InternalNetworkAttributesExtractor internalNetworkExtractor; + private final ServerAttributesExtractor serverAttributesExtractor; private final AttributeKey oldSemconvTableAttribute; private final boolean statementSanitizationEnabled; private final boolean captureQueryParameters; @@ -66,17 +82,35 @@ 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; + 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) { - super.onStart(attributes, parentContext, request); + // Common attributes + if (SemconvStability.emitStableDatabaseSemconv()) { + String dbSystem = getter.getDbSystem(request); + if (dbSystem != null) { + internalSet(attributes, DB_SYSTEM_NAME, SemconvStability.stableDbSystemName(dbSystem)); + } + 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)); + } + serverAttributesExtractor.onStart(attributes, parentContext, request); + // SQL-specific attributes Collection rawQueryTexts = getter.getRawQueryTexts(request); if (rawQueryTexts.isEmpty()) { @@ -160,4 +194,31 @@ 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) { + internalNetworkExtractor.onEnd(attributes, request, response); + 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 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..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 @@ -10,6 +10,7 @@ import com.datastax.driver.core.ExecutionInfo; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetSocketAddress; import java.util.Collection; import javax.annotation.Nullable; @@ -22,28 +23,21 @@ public String getDbSystem(CassandraRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA; } - @Deprecated - @Override - @Nullable - public String getUser(CassandraRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(CassandraRequest request) { return request.getSession().getLoggedKeyspace(); } - @Deprecated @Override - @Nullable - public String getConnectionString(CassandraRequest request) { - return null; + public Collection getRawQueryTexts(CassandraRequest request) { + return singleton(request.getQueryText()); } + @Nullable @Override - public Collection getRawQueryTexts(CassandraRequest request) { - return singleton(request.getQueryText()); + public InetSocketAddress getNetworkPeerInetSocketAddress( + 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/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..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 @@ -9,8 +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.Node; import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter; import io.opentelemetry.semconv.incubating.DbIncubatingAttributes; +import java.net.InetSocketAddress; +import java.net.SocketAddress; import java.util.Collection; import javax.annotation.Nullable; @@ -23,28 +26,31 @@ public String getDbSystem(CassandraRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA; } - @Deprecated - @Override - @Nullable - public String getUser(CassandraRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(CassandraRequest request) { return request.getSession().getKeyspace().map(CqlIdentifier::toString).orElse(null); } - @Deprecated @Override - @Nullable - public String getConnectionString(CassandraRequest request) { - return null; + public Collection getRawQueryTexts(CassandraRequest request) { + return singleton(request.getQueryText()); } + @Nullable @Override - public Collection getRawQueryTexts(CassandraRequest request) { - return singleton(request.getQueryText()); + 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.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..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 @@ -9,7 +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 java.net.InetSocketAddress; import java.util.Collection; import javax.annotation.Nullable; @@ -23,28 +27,33 @@ public String getDbSystem(CassandraRequest request) { return CASSANDRA; } - @Deprecated - @Override - @Nullable - public String getUser(CassandraRequest request) { - return null; - } - @Override @Nullable public String getDbNamespace(CassandraRequest request) { return request.getSession().getKeyspace().map(CqlIdentifier::toString).orElse(null); } - @Deprecated @Override - @Nullable - public String getConnectionString(CassandraRequest request) { - return null; + public Collection getRawQueryTexts(CassandraRequest request) { + return singleton(request.getQueryText()); } + @Nullable @Override - public Collection getRawQueryTexts(CassandraRequest request) { - return singleton(request.getQueryText()); + 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/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..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 @@ -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()); + 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 0792c1db7afa..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 @@ -12,7 +12,13 @@ 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 { + + public static final JdbcAttributesGetter INSTANCE = new JdbcAttributesGetter(); @Nullable @Override @@ -64,4 +70,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..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 @@ -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; @@ -28,9 +27,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( @@ -71,13 +67,12 @@ 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()) - .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractors(extractors) .addOperationMetrics(DbClientMetrics.get()) .setEnabled(enabled) @@ -114,9 +109,9 @@ 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) - .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..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 @@ -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; @@ -56,7 +55,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/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); 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