fixing issue #2083 (#2086)

This commit is contained in:
mschielmann
2021-12-28 22:51:23 +01:00
committed by GitHub
parent 093f77130c
commit 4a29094ccb

View File

@@ -20,6 +20,7 @@ import java.net.URI;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -73,6 +74,10 @@ class TraceListenerStrategy<CON, STMT, RS> {
// string.
private static final Pattern URL_SERVICE_NAME_FINDER = Pattern.compile("sleuthServiceName=(.*?)(?:&|$)");
private static final String DEFAULT_SPAN_NAME = "query";
private static final List<String> KNOWN_SPAN_NAMES = Arrays.asList("select", "insert", "update", "delete");
private final Map<CON, ConnectionInfo> openConnections = new ConcurrentHashMap<>();
private final ThreadLocal<ConnectionInfo> currentConnection = new ThreadLocal<>();
@@ -429,7 +434,15 @@ class TraceListenerStrategy<CON, STMT, RS> {
}
private String spanName(String sql) {
return sql.substring(0, sql.indexOf(' ')).toLowerCase(Locale.ROOT);
String lowercaseSql = sql.toLowerCase(Locale.ROOT);
String spanName = DEFAULT_SPAN_NAME;
for (String spanNameCandidate : KNOWN_SPAN_NAMES) {
if (lowercaseSql.startsWith(spanNameCandidate)) {
spanName = spanNameCandidate;
break;
}
}
return spanName;
}
/**