Commit f0acf9b6 authored by webb2019's avatar webb2019 Committed by 吴晟
Browse files

slow sql long string trim (#3318)

*  slow sql long string trim

*  fix slow sql has long string
parent dbab6977
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -47,4 +47,8 @@ public class TraceServiceModuleConfig extends ModuleConfig {
     * 2. NO means, only save trace, but metrics come other places, such as service mesh.
     */
    @Setter @Getter private boolean traceAnalysis = true;
    /**
     * Slow Sql string length can't beyond this limit
     */
    @Setter @Getter private int maxSlowSQLLength = 2000;
}
+8 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener
import java.util.*;
import org.apache.skywalking.apm.network.common.KeyStringValuePair;
import org.apache.skywalking.apm.network.language.agent.*;
import org.apache.skywalking.apm.util.StringUtil;
import org.apache.skywalking.oap.server.core.*;
import org.apache.skywalking.oap.server.core.cache.*;
import org.apache.skywalking.oap.server.core.source.*;
@@ -161,7 +162,13 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
            statement.setTraceId(traceId);
            for (KeyStringValuePair tag : spanDecorator.getAllTags()) {
                if (SpanTags.DB_STATEMENT.equals(tag.getKey())) {
                    statement.setStatement(tag.getValue());
                    String sqlStatement = tag.getValue();
                    if (!StringUtil.isEmpty(sqlStatement) && sqlStatement.length() > config.getMaxSlowSQLLength()) {
                        statement.setStatement(sqlStatement.substring(0,config.getMaxSlowSQLLength()));
                    }
                    else {
                        statement.setStatement(sqlStatement);
                    }

                } else if (SpanTags.DB_TYPE.equals(tag.getKey())) {
                    String dbType = tag.getValue();