From 70f94d577c338bf24616a953aba43ac0352ccfb9 Mon Sep 17 00:00:00 2001 From: Jared Tan Date: Mon, 18 Nov 2019 21:30:25 +0800 Subject: [PATCH] make sql statement more semantic. (#3882) * set no statement. * update sql. * update statement. * revert threshold. --- .../endpoint/MultiScopesSpanListener.java | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java index 5fd0af120..0c925f546 100755 --- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java +++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java @@ -18,13 +18,25 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.endpoint; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; import org.apache.skywalking.apm.network.common.KeyStringValuePair; -import org.apache.skywalking.apm.network.language.agent.*; +import org.apache.skywalking.apm.network.language.agent.SpanLayer; +import org.apache.skywalking.apm.network.language.agent.UniqueId; import org.apache.skywalking.apm.util.StringUtil; -import org.apache.skywalking.oap.server.core.*; +import org.apache.skywalking.oap.server.core.Const; +import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.analysis.TimeBucket; -import org.apache.skywalking.oap.server.core.cache.*; -import org.apache.skywalking.oap.server.core.source.*; +import org.apache.skywalking.oap.server.core.cache.EndpointInventoryCache; +import org.apache.skywalking.oap.server.core.cache.NetworkAddressInventoryCache; +import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache; +import org.apache.skywalking.oap.server.core.cache.ServiceInventoryCache; +import org.apache.skywalking.oap.server.core.source.DatabaseSlowStatement; +import org.apache.skywalking.oap.server.core.source.DetectPoint; +import org.apache.skywalking.oap.server.core.source.EndpointRelation; +import org.apache.skywalking.oap.server.core.source.RequestType; +import org.apache.skywalking.oap.server.core.source.SourceReceiver; import org.apache.skywalking.oap.server.library.module.ModuleManager; import org.apache.skywalking.oap.server.receiver.trace.provider.DBLatencyThresholdsAndWatcher; import org.apache.skywalking.oap.server.receiver.trace.provider.TraceServiceModuleConfig; @@ -40,10 +52,6 @@ import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener. import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - import static java.util.Objects.nonNull; /** @@ -179,13 +187,13 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe for (KeyStringValuePair tag : spanDecorator.getAllTags()) { if (SpanTags.DB_STATEMENT.equals(tag.getKey())) { String sqlStatement = tag.getValue(); - if (!StringUtil.isEmpty(sqlStatement) && sqlStatement.length() > config.getMaxSlowSQLLength()) { - statement.setStatement(sqlStatement.substring(0,config.getMaxSlowSQLLength())); - } - else { + if (StringUtil.isEmpty(sqlStatement)) { + statement.setStatement("[No statement]/" + sourceBuilder.getDestEndpointName()); + } else if (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(); DBLatencyThresholdsAndWatcher thresholds = config.getDbLatencyThresholdsAndWatcher();