From 1d2cba4ef7e72f37b6fbfc8854e2346f8847586a Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Mon, 18 Aug 2025 13:48:46 +0200 Subject: [PATCH 1/4] require DB methods --- .../semconv/db/DbClientCommonAttributesGetter.java | 11 ++--------- .../semconv/db/SqlClientAttributesGetter.java | 10 ++-------- 2 files changed, 4 insertions(+), 17 deletions(-) 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 b135625bd970..b4b2c3d06f4f 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 @@ -16,11 +16,7 @@ default String getSystem(REQUEST request) { return null; } - // TODO: make this required to implement - @Nullable - default String getDbSystem(REQUEST request) { - return getSystem(request); - } + String getDbSystem(REQUEST request); @Deprecated @Nullable @@ -37,11 +33,8 @@ default String getName(REQUEST request) { return null; } - // TODO: make this required to implement @Nullable - default String getDbNamespace(REQUEST request) { - return getName(request); - } + String getDbNamespace(REQUEST request); @Deprecated @Nullable 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 bdf64e638a1c..2720376115c3 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 @@ -5,9 +5,6 @@ package io.opentelemetry.instrumentation.api.incubator.semconv.db; -import static java.util.Collections.emptySet; -import static java.util.Collections.singleton; - import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -58,13 +55,10 @@ default String getRawQueryText(REQUEST request) { *

If {@code request} is not a batch query, then this method should return a collection with a * single element. */ - // TODO: make this required to implement - default Collection getRawQueryTexts(REQUEST request) { - String rawQueryText = getRawQueryText(request); - return rawQueryText == null ? emptySet() : singleton(rawQueryText); - } + Collection getRawQueryTexts(REQUEST request); // TODO: make this required to implement + @Nullable default Long getBatchSize(REQUEST request) { return null; } From 448e8a46dc01c2195f6b127e3626f11796818140 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Mon, 18 Aug 2025 13:50:16 +0200 Subject: [PATCH 2/4] require DB methods --- .../api/internal/InstrumenterContextTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 044935031cc2..59fa6422b99e 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 @@ -34,6 +34,15 @@ void testSqlSanitizer() { String testQuery = "SELECT name FROM test WHERE id = 1"; SqlClientAttributesGetter getter = new SqlClientAttributesGetter() { + @Override + public String getDbSystem(Object o) { + return ""; + } + + @Override + public String getDbNamespace(Object o) { + return ""; + } @Override public Collection getRawQueryTexts(Object request) { From 695fb5af7949081c95263c2e08681621921b6edb Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Mon, 18 Aug 2025 14:45:28 +0200 Subject: [PATCH 3/4] fix --- .../api/incubator/semconv/db/SqlClientAttributesGetter.java | 1 - .../instrumentation/api/internal/InstrumenterContextTest.java | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) 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 2720376115c3..9448ce0401e5 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 @@ -58,7 +58,6 @@ default String getRawQueryText(REQUEST request) { Collection getRawQueryTexts(REQUEST request); // TODO: make this required to implement - @Nullable default Long getBatchSize(REQUEST request) { return null; } 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 59fa6422b99e..7aa8897b7911 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 @@ -36,12 +36,12 @@ void testSqlSanitizer() { new SqlClientAttributesGetter() { @Override public String getDbSystem(Object o) { - return ""; + return "testdb"; } @Override public String getDbNamespace(Object o) { - return ""; + return null; } @Override From 591159e201cb1fd2440780801eae69009724cb7b Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 20 Aug 2025 09:18:29 +0200 Subject: [PATCH 4/4] remove deprecated methods --- .../db/DbClientCommonAttributesGetter.java | 15 ----------- .../db/SqlClientAttributesExtractor.java | 4 +-- .../semconv/db/SqlClientAttributesGetter.java | 25 ------------------- 3 files changed, 2 insertions(+), 42 deletions(-) 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 b4b2c3d06f4f..bda95d5c69a7 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 @@ -10,12 +10,6 @@ /** An interface for getting attributes common to database clients. */ public interface DbClientCommonAttributesGetter { - @Deprecated - @Nullable - default String getSystem(REQUEST request) { - return null; - } - String getDbSystem(REQUEST request); @Deprecated @@ -24,15 +18,6 @@ default String getUser(REQUEST request) { return null; } - /** - * @deprecated Use {@link #getDbNamespace(Object)} instead. - */ - @Deprecated - @Nullable - default String getName(REQUEST request) { - return null; - } - @Nullable String getDbNamespace(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 4cb1ae7fc8cc..b30a61505176 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 @@ -27,8 +27,8 @@ * *

It sets the same set of attributes as {@link DbClientAttributesExtractor} plus an additional * db.sql.table attribute. The raw SQL statements returned by the {@link - * SqlClientAttributesGetter#getRawQueryText(Object)} method are sanitized before use, all statement - * parameters are removed. + * SqlClientAttributesGetter#getRawQueryTexts(Object)} method are sanitized before use, all + * statement parameters are removed. */ public final class SqlClientAttributesExtractor extends DbClientCommonAttributesExtractor< 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 9448ce0401e5..3c9af7d35449 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 @@ -8,7 +8,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; -import javax.annotation.Nullable; /** * An interface for getting SQL database client attributes. @@ -24,30 +23,6 @@ public interface SqlClientAttributesGetter extends DbClientCommonAttributesGetter { - /** - * Get the raw SQL statement. The value returned by this method is later sanitized by the {@link - * SqlClientAttributesExtractor} before being set as span attribute. - * - * @deprecated Use {@link #getRawQueryText(Object)} instead. - */ - @Deprecated - @Nullable - default String getRawStatement(REQUEST request) { - return null; - } - - /** - * Get the raw SQL query text. The value returned by this method is later sanitized by the {@link - * SqlClientAttributesExtractor} before being set as span attribute. - * - * @deprecated Use {@link #getRawQueryTexts(Object)} instead. - */ - @Deprecated - @Nullable - default String getRawQueryText(REQUEST request) { - return getRawStatement(request); - } - /** * Get the raw SQL query texts. The values returned by this method is later sanitized by the * {@link SqlClientAttributesExtractor} before being set as span attribute.