Skip to content

Commit 50d1afc

Browse files
authored
Let instrumentations fill db.query.summary attribute (#14934)
1 parent 75f2ca3 commit 50d1afc

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
99
import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_NAME;
10+
import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_SUMMARY;
1011
import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_TEXT;
1112

1213
import io.opentelemetry.api.common.AttributeKey;
@@ -48,6 +49,7 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST
4849
if (SemconvStability.emitStableDatabaseSemconv()) {
4950
internalSet(attributes, DB_QUERY_TEXT, getter.getDbQueryText(request));
5051
internalSet(attributes, DB_OPERATION_NAME, getter.getDbOperationName(request));
52+
internalSet(attributes, DB_QUERY_SUMMARY, getter.getDbQuerySummary(request));
5153
}
5254
if (SemconvStability.emitOldDatabaseSemconv()) {
5355
internalSet(attributes, DB_STATEMENT, getter.getDbQueryText(request));

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesGetter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ default String getDbQueryText(REQUEST request) {
3636
return getStatement(request);
3737
}
3838

39+
// TODO: make this required to implement
40+
@Nullable
41+
default String getDbQuerySummary(REQUEST request) {
42+
return null;
43+
}
44+
3945
/**
4046
* @deprecated Use {@link #getDbOperationName(REQUEST)} instead.
4147
*/

instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractorTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.Collections;
1919
import java.util.HashMap;
2020
import java.util.Map;
21+
import javax.annotation.Nullable;
2122
import org.junit.jupiter.api.Test;
2223

2324
class DbClientAttributesExtractorTest {
@@ -51,6 +52,12 @@ public String getDbQueryText(Map<String, String> map) {
5152
return map.get("db.statement");
5253
}
5354

55+
@Nullable
56+
@Override
57+
public String getDbQuerySummary(Map<String, String> map) {
58+
return map.get("db.query_summary");
59+
}
60+
5461
@Override
5562
public String getDbOperationName(Map<String, String> map) {
5663
return map.get("db.operation");
@@ -67,6 +74,7 @@ void shouldExtractAllAvailableAttributes() {
6774
request.put("db.name", "potatoes");
6875
request.put("db.connection_string", "mydb:///potatoes");
6976
request.put("db.statement", "SELECT * FROM potato");
77+
request.put("db.query_summary", "SELECT potato");
7078
request.put("db.operation", "SELECT");
7179

7280
Context context = Context.root();
@@ -94,6 +102,7 @@ void shouldExtractAllAvailableAttributes() {
94102
entry(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
95103
entry(DbAttributes.DB_NAMESPACE, "potatoes"),
96104
entry(DbAttributes.DB_QUERY_TEXT, "SELECT * FROM potato"),
105+
entry(DbAttributes.DB_QUERY_SUMMARY, "SELECT potato"),
97106
entry(DbAttributes.DB_OPERATION_NAME, "SELECT"));
98107
} else if (SemconvStability.emitOldDatabaseSemconv()) {
99108
assertThat(startAttributes.build())
@@ -110,6 +119,7 @@ void shouldExtractAllAvailableAttributes() {
110119
entry(DbAttributes.DB_SYSTEM_NAME, "myDb"),
111120
entry(DbAttributes.DB_NAMESPACE, "potatoes"),
112121
entry(DbAttributes.DB_QUERY_TEXT, "SELECT * FROM potato"),
122+
entry(DbAttributes.DB_QUERY_SUMMARY, "SELECT potato"),
113123
entry(DbAttributes.DB_OPERATION_NAME, "SELECT"));
114124
}
115125

0 commit comments

Comments
 (0)