From fbd3134435b116102d7a36709f0adbfda5d9e704 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 9 Dec 2025 12:41:18 -0800 Subject: [PATCH 1/4] Rename getDbSystem and getResponseStatus to getDbSystemName and getResponseStatusCode --- .../db/DbClientAttributesExtractor.java | 5 ++-- .../semconv/db/DbClientAttributesGetter.java | 27 +++++++++++++++++++ .../db/DbClientCommonAttributesGetter.java | 19 ++++++++++++- .../db/DbClientAttributesExtractorTest.java | 2 +- .../db/SqlClientAttributesExtractorTest.java | 2 +- .../api/internal/InstrumenterContextTest.java | 2 +- .../v3_0/CassandraSqlAttributesGetter.java | 2 +- .../v4_0/CassandraSqlAttributesGetter.java | 2 +- .../v4_4/CassandraSqlAttributesGetter.java | 2 +- .../common/ClickHouseAttributesGetter.java | 4 +-- .../v2_0/CouchbaseAttributesGetter.java | 2 +- .../ElasticsearchDbAttributesGetter.java | 4 +-- ...lasticsearchTransportAttributesGetter.java | 2 +- .../geode/GeodeDbAttributesGetter.java | 2 +- .../v2_4/InfluxDbAttributesGetter.java | 2 +- .../jdbc/internal/JdbcAttributesGetter.java | 4 +-- .../jedis/v1_4/JedisDbAttributesGetter.java | 2 +- .../jedis/v3_0/JedisDbAttributesGetter.java | 2 +- .../jedis/v4_0/JedisDbAttributesGetter.java | 2 +- .../v4_0/LettuceDbAttributesGetter.java | 2 +- .../v5_0/LettuceDbAttributesGetter.java | 2 +- .../internal/MongoDbAttributesGetter.java | 4 +-- .../v3_0/OpenSearchAttributesGetter.java | 4 +-- .../rest/OpenSearchRestAttributesGetter.java | 4 +-- .../internal/R2dbcSqlAttributesGetter.java | 4 +-- .../rediscala/RediscalaAttributesGetter.java | 2 +- .../redisson/RedissonDbAttributesGetter.java | 2 +- .../SpymemcachedAttributesGetter.java | 2 +- .../VertxRedisClientAttributesGetter.java | 2 +- .../sql/VertxSqlClientAttributesGetter.java | 4 +-- 30 files changed, 83 insertions(+), 38 deletions(-) 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 29dde7f7047f..f971582ef897 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 @@ -77,7 +77,7 @@ static void onStartCommon( internalSet( attributes, DB_SYSTEM_NAME, - SemconvStability.stableDbSystemName(getter.getDbSystem(request))); + SemconvStability.stableDbSystemName(getter.getDbSystemName(request))); internalSet(attributes, DB_NAMESPACE, getter.getDbNamespace(request)); internalSet(attributes, DB_QUERY_TEXT, getter.getDbQueryText(request)); internalSet(attributes, DB_OPERATION_NAME, getter.getDbOperationName(request)); @@ -114,7 +114,8 @@ static void onEndCommon( internalSet(attributes, ERROR_TYPE, error.getClass().getName()); } if (error != null || response != null) { - internalSet(attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatus(response, error)); + internalSet( + attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatusCode(response, error)); } } } 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 52b35ecf278e..77ad2b360024 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 @@ -61,4 +61,31 @@ default String getOperation(REQUEST request) { default String getDbOperationName(REQUEST request) { return getOperation(request); } + + // TODO: make this required to implement + default String getDbSystemName(REQUEST request) { + String dbSystem = getDbSystem(request); + if (dbSystem == null) { + throw new UnsupportedOperationException( + "Must override getDbSystemName() or getDbSystem() (deprecated)"); + } + return dbSystem; + } + + /** + * @deprecated Use {@link #getDbSystemName} instead. + */ + @Deprecated + @Nullable + default String getDbSystem(REQUEST request) { + // overriding in order to provide a default implementation temporarily, + // so subclasses don't need to override this method + return null; + } + + // TODO: make this required to implement + @Nullable + default String getResponseStatusCode(@Nullable RESPONSE response, @Nullable Throwable error) { + return getResponseStatus(response, error); + } } 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 3e89f70c0a33..446f28594695 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 @@ -15,8 +15,16 @@ @Deprecated public interface DbClientCommonAttributesGetter { + /** + * @deprecated Use {@link DbClientAttributesGetter#getDbSystemName} instead. + */ + @Deprecated + @Nullable String getDbSystem(REQUEST request); + /** + * @deprecated There is no replacement at this time. + */ @Deprecated @Nullable default String getUser(REQUEST request) { @@ -24,14 +32,23 @@ default String getUser(REQUEST request) { } @Nullable - String getDbNamespace(REQUEST request); + default String getDbNamespace(REQUEST request) { + return null; + } + /** + * @deprecated There is no replacement at this time. + */ @Deprecated @Nullable default String getConnectionString(REQUEST request) { return null; } + /** + * @deprecated Use {@link DbClientAttributesGetter#getResponseStatusCode} instead. + */ + @Deprecated @Nullable default String getResponseStatus(@Nullable RESPONSE response, @Nullable Throwable error) { return null; diff --git a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractorTest.java b/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractorTest.java index 7dab636b40bd..cd920b88f14c 100644 --- a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractorTest.java +++ b/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractorTest.java @@ -26,7 +26,7 @@ class DbClientAttributesExtractorTest { static final class TestAttributesGetter implements DbClientAttributesGetter, Void> { @Override - public String getDbSystem(Map map) { + public String getDbSystemName(Map map) { return map.get("db.system"); } diff --git a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractorTest.java b/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractorTest.java index e5dc0307cb95..c5ebc6fd52ca 100644 --- a/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractorTest.java +++ b/instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractorTest.java @@ -39,7 +39,7 @@ public Collection getRawQueryTexts(Map map) { } @Override - public String getDbSystem(Map map) { + public String getDbSystemName(Map map) { return read(map, "db.system"); } diff --git a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumenterContextTest.java b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumenterContextTest.java index 7aa8897b7911..ef8f197b00b0 100644 --- a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumenterContextTest.java +++ b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/internal/InstrumenterContextTest.java @@ -35,7 +35,7 @@ void testSqlSanitizer() { SqlClientAttributesGetter getter = new SqlClientAttributesGetter() { @Override - public String getDbSystem(Object o) { + public String getDbSystemName(Object o) { return "testdb"; } 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 170b40528f4b..bb6134b06c69 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 @@ -19,7 +19,7 @@ final class CassandraSqlAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(CassandraRequest request) { + public String getDbSystemName(CassandraRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA; } 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 ca81cd21c066..75def426992a 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 @@ -22,7 +22,7 @@ final class CassandraSqlAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(CassandraRequest request) { + public String getDbSystemName(CassandraRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CASSANDRA; } 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 d1736b8f4fc6..c85c18dea184 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 @@ -23,7 +23,7 @@ final class CassandraSqlAttributesGetter private static final String CASSANDRA = "cassandra"; @Override - public String getDbSystem(CassandraRequest request) { + public String getDbSystemName(CassandraRequest request) { return CASSANDRA; } 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 7c19f05a006a..f99d22a0b9bf 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 @@ -39,7 +39,7 @@ public String getDbOperationName(ClickHouseDbRequest request) { @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(ClickHouseDbRequest request) { + public String getDbSystemName(ClickHouseDbRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.CLICKHOUSE; } @@ -55,7 +55,7 @@ public String getDbNamespace(ClickHouseDbRequest request) { @Nullable @Override - public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) { + public String getResponseStatusCode(@Nullable Void response, @Nullable Throwable error) { return errorCodeExtractor.apply(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 97291be73a29..d57d1306412c 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 @@ -16,7 +16,7 @@ final class CouchbaseAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(CouchbaseRequestInfo couchbaseRequest) { + public String getDbSystemName(CouchbaseRequestInfo couchbaseRequest) { return DbIncubatingAttributes.DbSystemIncubatingValues.COUCHBASE; } 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 f7abd7855658..3d1561cb210a 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 @@ -39,7 +39,7 @@ final class ElasticsearchDbAttributesGetter } @Override - public String getDbSystem(ElasticsearchRestRequest request) { + public String getDbSystemName(ElasticsearchRestRequest request) { return ELASTICSEARCH; } @@ -82,7 +82,7 @@ public String getDbOperationName(ElasticsearchRestRequest request) { @Nullable @Override - public String getResponseStatus(@Nullable Response response, @Nullable Throwable error) { + public String getResponseStatusCode(@Nullable Response response, @Nullable Throwable error) { return response != null ? dbResponseStatusCode(response.getStatusLine().getStatusCode()) : null; } } 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 55af352545d8..586bb1a5ad72 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 @@ -15,7 +15,7 @@ final class ElasticsearchTransportAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(ElasticTransportRequest request) { + public String getDbSystemName(ElasticTransportRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH; } 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 6ede8c66ff5c..e167f61b2a9f 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 @@ -18,7 +18,7 @@ final class GeodeDbAttributesGetter implements DbClientAttributesGetter request) { + public String getDbSystemName(RedisCommand request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } 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 ca3025b4a6c1..29919c94cdaa 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 @@ -23,7 +23,7 @@ final class LettuceDbAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(RedisCommand request) { + public String getDbSystemName(RedisCommand request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } diff --git a/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/internal/MongoDbAttributesGetter.java b/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/internal/MongoDbAttributesGetter.java index 1cdf2a1f2469..4fe159e77dd6 100644 --- a/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/internal/MongoDbAttributesGetter.java +++ b/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/internal/MongoDbAttributesGetter.java @@ -51,7 +51,7 @@ class MongoDbAttributesGetter implements DbClientAttributesGetter { @Override - public String getDbSystem(OpenSearchRequest request) { + public String getDbSystemName(OpenSearchRequest request) { return DbIncubatingAttributes.DbSystemNameIncubatingValues.OPENSEARCH; } @@ -37,7 +37,7 @@ public String getDbOperationName(OpenSearchRequest request) { @Nullable @Override - public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) { + public String getResponseStatusCode(@Nullable Void response, @Nullable Throwable error) { return null; // Response status is handled by HTTP instrumentation } } 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 f8c7ab42f0f3..a8a8ad1ca0ad 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 @@ -16,7 +16,7 @@ final class OpenSearchRestAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(OpenSearchRestRequest request) { + public String getDbSystemName(OpenSearchRestRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.OPENSEARCH; } @@ -40,7 +40,7 @@ public String getDbOperationName(OpenSearchRestRequest request) { @Nullable @Override - public String getResponseStatus( + public String getResponseStatusCode( @Nullable OpenSearchRestResponse response, @Nullable Throwable error) { return response != null ? dbResponseStatusCode(response.getStatusCode()) : null; } 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 21daf6ec0085..be6e9742f050 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 @@ -20,7 +20,7 @@ public enum R2dbcSqlAttributesGetter implements SqlClientAttributesGetter getRawQueryTexts(DbExecution request) { @Nullable @Override - public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) { + public String getResponseStatusCode(@Nullable Void response, @Nullable Throwable error) { if (error instanceof R2dbcException) { return ((R2dbcException) error).getSqlState(); } 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 ad33295605b2..655fe2f8e1e2 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 @@ -16,7 +16,7 @@ final class RediscalaAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(RedisCommand redisCommand) { + public String getDbSystemName(RedisCommand redisCommand) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } 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 62506b424af5..6ffed85db61b 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 @@ -14,7 +14,7 @@ final class RedissonDbAttributesGetter implements DbClientAttributesGetter { @Override - public String getDbSystem(SpymemcachedRequest spymemcachedRequest) { + public String getDbSystemName(SpymemcachedRequest spymemcachedRequest) { return "memcached"; } diff --git a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java index a6330addd21b..9d71e2cf7bae 100644 --- a/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java +++ b/instrumentation/vertx/vertx-redis-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/redis/VertxRedisClientAttributesGetter.java @@ -21,7 +21,7 @@ public enum VertxRedisClientAttributesGetter @SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues @Override - public String getDbSystem(VertxRedisClientRequest request) { + public String getDbSystemName(VertxRedisClientRequest request) { return DbIncubatingAttributes.DbSystemIncubatingValues.REDIS; } 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 d3f153613ceb..affcc6dee590 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 @@ -24,7 +24,7 @@ enum VertxSqlClientAttributesGetter createResponseStatusExtractors(); @Override - public String getDbSystem(VertxSqlClientRequest request) { + public String getDbSystemName(VertxSqlClientRequest request) { return null; } @@ -60,7 +60,7 @@ public Collection getRawQueryTexts(VertxSqlClientRequest request) { @Nullable @Override - public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) { + public String getResponseStatusCode(@Nullable Void response, @Nullable Throwable error) { for (Function extractor : responseStatusExtractors) { String status = extractor.apply((Exception) error); if (status != null) { From fba7a7d468a4e7a7abb3016761ff33e7cf297134 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 19 Dec 2025 10:20:30 -0800 Subject: [PATCH 2/4] fix --- .../db/DbClientAttributesExtractor.java | 20 +++++++++++++++++-- .../semconv/db/DbClientAttributesGetter.java | 14 ++++--------- 2 files changed, 22 insertions(+), 12 deletions(-) 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 f971582ef897..827f8696940e 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 @@ -77,14 +77,14 @@ static void onStartCommon( internalSet( attributes, DB_SYSTEM_NAME, - SemconvStability.stableDbSystemName(getter.getDbSystemName(request))); + SemconvStability.stableDbSystemName(getDbSystemName(getter, 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_SYSTEM, getDbSystemName(getter, request)); internalSet(attributes, DB_USER, getter.getUser(request)); internalSet(attributes, DB_NAME, getter.getDbNamespace(request)); internalSet(attributes, DB_CONNECTION_STRING, getter.getConnectionString(request)); @@ -93,6 +93,22 @@ static void onStartCommon( } } + @SuppressWarnings("deprecation") // getDbSystem is called for backward compatibility + private static String getDbSystemName( + DbClientAttributesGetter getter, REQUEST request) { + try { + return getter.getDbSystemName(request); + } catch (UnsupportedOperationException e) { + // Fall back to deprecated method for backward compatibility + String dbSystem = getter.getDbSystem(request); + if (dbSystem == null) { + throw new UnsupportedOperationException( + "Must override getDbSystemName() or getDbSystem() (deprecated)"); + } + return dbSystem; + } + } + @Override public void onEnd( AttributesBuilder attributes, 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 77ad2b360024..71b16ef22341 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 @@ -64,23 +64,17 @@ default String getDbOperationName(REQUEST request) { // TODO: make this required to implement default String getDbSystemName(REQUEST request) { - String dbSystem = getDbSystem(request); - if (dbSystem == null) { - throw new UnsupportedOperationException( - "Must override getDbSystemName() or getDbSystem() (deprecated)"); - } - return dbSystem; + // DbClientAttributesExtractor calls this first, then falls back to getDbSystem() if needed + throw new UnsupportedOperationException(); } /** * @deprecated Use {@link #getDbSystemName} instead. */ @Deprecated - @Nullable default String getDbSystem(REQUEST request) { - // overriding in order to provide a default implementation temporarily, - // so subclasses don't need to override this method - return null; + // DbClientAttributesExtractor calls this only if getDbSystemName() is not overridden + throw new UnsupportedOperationException(); } // TODO: make this required to implement From 6f30dfb58467507ba2950eca67d5efc6c7455b58 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 19 Dec 2025 10:31:53 -0800 Subject: [PATCH 3/4] Fix UnusedException warning in DbClientAttributesExtractor Pass the caught exception as the cause when rethrowing UnsupportedOperationException to avoid compilation error when -Werror is enabled. --- .../api/incubator/semconv/db/DbClientAttributesExtractor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 827f8696940e..063b84175f83 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 @@ -103,7 +103,7 @@ private static String getDbSystemName( String dbSystem = getter.getDbSystem(request); if (dbSystem == null) { throw new UnsupportedOperationException( - "Must override getDbSystemName() or getDbSystem() (deprecated)"); + "Must override getDbSystemName() or getDbSystem() (deprecated)", e); } return dbSystem; } From 4e72a142073c5dc15d6e9d16f98093d5e5f6ea7c Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 19 Dec 2025 11:41:35 -0800 Subject: [PATCH 4/4] simplify --- .../db/DbClientAttributesExtractor.java | 20 ++----------------- .../semconv/db/DbClientAttributesGetter.java | 12 +---------- .../db/DbClientCommonAttributesGetter.java | 10 +++++----- 3 files changed, 8 insertions(+), 34 deletions(-) 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 063b84175f83..617a0e0a0e92 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 @@ -77,14 +77,14 @@ static void onStartCommon( internalSet( attributes, DB_SYSTEM_NAME, - SemconvStability.stableDbSystemName(getDbSystemName(getter, request))); + SemconvStability.stableDbSystemName(getter.getDbSystemName(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, getDbSystemName(getter, request)); + internalSet(attributes, DB_SYSTEM, getter.getDbSystemName(request)); internalSet(attributes, DB_USER, getter.getUser(request)); internalSet(attributes, DB_NAME, getter.getDbNamespace(request)); internalSet(attributes, DB_CONNECTION_STRING, getter.getConnectionString(request)); @@ -93,22 +93,6 @@ static void onStartCommon( } } - @SuppressWarnings("deprecation") // getDbSystem is called for backward compatibility - private static String getDbSystemName( - DbClientAttributesGetter getter, REQUEST request) { - try { - return getter.getDbSystemName(request); - } catch (UnsupportedOperationException e) { - // Fall back to deprecated method for backward compatibility - String dbSystem = getter.getDbSystem(request); - if (dbSystem == null) { - throw new UnsupportedOperationException( - "Must override getDbSystemName() or getDbSystem() (deprecated)", e); - } - return dbSystem; - } - } - @Override public void onEnd( AttributesBuilder attributes, 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 71b16ef22341..c804a2ea8558 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 @@ -64,17 +64,7 @@ default String getDbOperationName(REQUEST request) { // TODO: make this required to implement default String getDbSystemName(REQUEST request) { - // DbClientAttributesExtractor calls this first, then falls back to getDbSystem() if needed - throw new UnsupportedOperationException(); - } - - /** - * @deprecated Use {@link #getDbSystemName} instead. - */ - @Deprecated - default String getDbSystem(REQUEST request) { - // DbClientAttributesExtractor calls this only if getDbSystemName() is not overridden - throw new UnsupportedOperationException(); + return getDbSystem(request); } // TODO: make this required to implement 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 446f28594695..069bb370b27f 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 @@ -19,8 +19,10 @@ public interface DbClientCommonAttributesGetter { * @deprecated Use {@link DbClientAttributesGetter#getDbSystemName} instead. */ @Deprecated - @Nullable - String getDbSystem(REQUEST request); + default String getDbSystem(REQUEST request) { + // it is not required to implement this method anymore + throw new UnsupportedOperationException(); + } /** * @deprecated There is no replacement at this time. @@ -32,9 +34,7 @@ default String getUser(REQUEST request) { } @Nullable - default String getDbNamespace(REQUEST request) { - return null; - } + String getDbNamespace(REQUEST request); /** * @deprecated There is no replacement at this time.