Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,38 +10,16 @@
/** An interface for getting attributes common to database clients. */
public interface DbClientCommonAttributesGetter<REQUEST, RESPONSE> {

@Deprecated
@Nullable
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
default String getUser(REQUEST request) {
return null;
}

/**
* @deprecated Use {@link #getDbNamespace(Object)} instead.
*/
@Deprecated
@Nullable
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
*
* <p>It sets the same set of attributes as {@link DbClientAttributesExtractor} plus an additional
* <code>db.sql.table</code> 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<REQUEST, RESPONSE>
extends DbClientCommonAttributesExtractor<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,9 @@

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;
import javax.annotation.Nullable;

/**
* An interface for getting SQL database client attributes.
Expand All @@ -27,42 +23,14 @@
public interface SqlClientAttributesGetter<REQUEST, RESPONSE>
extends DbClientCommonAttributesGetter<REQUEST, RESPONSE> {

/**
* 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.
*
* <p>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<String> getRawQueryTexts(REQUEST request) {
String rawQueryText = getRawQueryText(request);
return rawQueryText == null ? emptySet() : singleton(rawQueryText);
}
Collection<String> getRawQueryTexts(REQUEST request);

// TODO: make this required to implement
default Long getBatchSize(REQUEST request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,15 @@ void testSqlSanitizer() {
String testQuery = "SELECT name FROM test WHERE id = 1";
SqlClientAttributesGetter<Object, Void> getter =
new SqlClientAttributesGetter<Object, Void>() {
@Override
public String getDbSystem(Object o) {
return "testdb";
}

@Override
public String getDbNamespace(Object o) {
return null;
}

@Override
public Collection<String> getRawQueryTexts(Object request) {
Expand Down