未验证 提交 72546a75 编写于 作者: H haoyann 提交者: GitHub

fix `DatabaseSlowStatementBuilder` statement maybe null (#6470)

上级 19d4a772
......@@ -37,6 +37,7 @@ Release Notes.
* Remove the experimental Zipkin span analyzer.
* Upgrade the Zipkin Elasticsearch storage from 6 to 7.
* Require Zipkin receiver must work with `zipkin-elasticsearch7` storage option.
* Fix `DatabaseSlowStatementBuilder` statement maybe null.
#### UI
* Update selector scroller to show in all pages.
......
......@@ -206,12 +206,12 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
for (KeyStringValuePair tag : span.getTagsList()) {
if (SpanTags.DB_STATEMENT.equals(tag.getKey())) {
String sqlStatement = tag.getValue();
if (StringUtil.isEmpty(sqlStatement)) {
slowStatementBuilder.setStatement("[No statement]/" + span.getOperationName());
} else if (sqlStatement.length() > config.getMaxSlowSQLLength()) {
slowStatementBuilder.setStatement(sqlStatement.substring(0, config.getMaxSlowSQLLength()));
} else {
slowStatementBuilder.setStatement(sqlStatement);
if (StringUtil.isNotEmpty(sqlStatement)) {
if (sqlStatement.length() > config.getMaxSlowSQLLength()) {
slowStatementBuilder.setStatement(sqlStatement.substring(0, config.getMaxSlowSQLLength()));
} else {
slowStatementBuilder.setStatement(sqlStatement);
}
}
} else if (SpanTags.DB_TYPE.equals(tag.getKey())) {
String dbType = tag.getValue();
......@@ -223,6 +223,11 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
}
}
if (StringUtil.isEmpty(slowStatementBuilder.getStatement())) {
String statement = StringUtil.isEmpty(
span.getOperationName()) ? "[No statement]" : "[No statement]/" + span.getOperationName();
slowStatementBuilder.setStatement(statement);
}
if (isSlowDBAccess) {
dbSlowStatementBuilders.add(slowStatementBuilder);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册