Skip to content

Commit 6c7afce

Browse files
authored
Extract sql operation even when the sanitizer is disabled (#11472)
1 parent 3c3e905 commit 6c7afce

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

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

+11-5
Original file line numberDiff line numberDiff line change
@@ -46,26 +46,32 @@ public static <REQUEST, RESPONSE> SqlClientAttributesExtractorBuilder<REQUEST, R
4646
}
4747

4848
private static final String SQL_CALL = "CALL";
49+
// sanitizer is also used to extract operation and table name, so we have it always enable here
50+
private static final SqlStatementSanitizer sanitizer = SqlStatementSanitizer.create(true);
4951

5052
private final AttributeKey<String> dbTableAttribute;
51-
private final SqlStatementSanitizer sanitizer;
53+
private final boolean statementSanitizationEnabled;
5254

5355
SqlClientAttributesExtractor(
5456
SqlClientAttributesGetter<REQUEST> getter,
5557
AttributeKey<String> dbTableAttribute,
56-
SqlStatementSanitizer sanitizer) {
58+
boolean statementSanitizationEnabled) {
5759
super(getter);
5860
this.dbTableAttribute = dbTableAttribute;
59-
this.sanitizer = sanitizer;
61+
this.statementSanitizationEnabled = statementSanitizationEnabled;
6062
}
6163

6264
@Override
6365
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
6466
super.onStart(attributes, parentContext, request);
6567

66-
SqlStatementInfo sanitizedStatement = sanitizer.sanitize(getter.getRawStatement(request));
68+
String rawStatement = getter.getRawStatement(request);
69+
SqlStatementInfo sanitizedStatement = sanitizer.sanitize(rawStatement);
6770
String operation = sanitizedStatement.getOperation();
68-
internalSet(attributes, DB_STATEMENT, sanitizedStatement.getFullStatement());
71+
internalSet(
72+
attributes,
73+
DB_STATEMENT,
74+
statementSanitizationEnabled ? sanitizedStatement.getFullStatement() : rawStatement);
6975
internalSet(attributes, DB_OPERATION, operation);
7076
if (!SQL_CALL.equals(operation)) {
7177
internalSet(attributes, dbTableAttribute, sanitizedStatement.getMainIdentifier());

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,6 @@ public SqlClientAttributesExtractorBuilder<REQUEST, RESPONSE> setStatementSaniti
5858
*/
5959
public AttributesExtractor<REQUEST, RESPONSE> build() {
6060
return new SqlClientAttributesExtractor<>(
61-
getter, dbTableAttribute, SqlStatementSanitizer.create(statementSanitizationEnabled));
61+
getter, dbTableAttribute, statementSanitizationEnabled);
6262
}
6363
}

0 commit comments

Comments
 (0)