You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/02/19 05:03:02 UTC

[incubator-skywalking] branch master updated: Correct trace id in slow db statement (#2254)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 479ee33  Correct trace id in slow db statement (#2254)
479ee33 is described below

commit 479ee332440ae30e7dfa788232352d973f7c2b74
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Feb 19 13:02:54 2019 +0800

    Correct trace id in slow db statement (#2254)
    
    * Correct trace id.
    
    * Fix match.
    
    * Add cover token to retry.
    
    * Retry new test plugin.
    
    * Reset to jacoco.
    
    * Update jacoco version.
---
 .travis.yml                                        |  6 ++--
 apm-checkstyle/pom.xml                             | 36 +---------------------
 .../listener/endpoint/MultiScopesSpanListener.java | 24 ++++++++++++---
 pom.xml                                            |  9 ++----
 4 files changed, 27 insertions(+), 48 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index bd48465..8879582 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,6 +4,8 @@ language: java
 
 install:
   - jdk_switcher use oraclejdk8
-  - ./mvnw clean install --quiet jacoco:report coveralls:report
-  - ./mvnw clean javadoc:javadoc -Dmaven.test.skip=true --quiet
+  - ./mvnw clean install --quiet
+  - ./mvnw javadoc:javadoc -Dmaven.test.skip=true --quiet
 
+after_success:
+- ./mvnw clean test jacoco:report coveralls:report --quiet
diff --git a/apm-checkstyle/pom.xml b/apm-checkstyle/pom.xml
index bf6ef22..9015463 100644
--- a/apm-checkstyle/pom.xml
+++ b/apm-checkstyle/pom.xml
@@ -27,41 +27,7 @@
 
     <groupId>org.apache.skywalking</groupId>
     <artifactId>apm-checkstyle</artifactId>
-    <version>6.0.0-beta</version>
+    <version>6.1.0</version>
     <description>Module to hold Checkstyle for SkyWalking.</description>
 
-    <properties>
-        <jacoco-maven-plugin.version>0.7.9</jacoco-maven-plugin.version>
-        <coveralls-maven-plugin.version>4.1.0</coveralls-maven-plugin.version>
-    </properties>
-
-    <build>
-        <plugins>
-            <!-- 覆盖率 -->
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco-maven-plugin.version}</version>
-                <executions>
-                    <execution>
-                        <id>prepare-agent</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.eluder.coveralls</groupId>
-                <artifactId>coveralls-maven-plugin</artifactId>
-                <version>${coveralls-maven-plugin.version}</version>
-                <configuration>
-                    <repoToken>xFwR2GqmxcMxV7tGEpW2NfwIrbCD4cQCS</repoToken>
-                    <sourceDirectories>
-                        <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
-                    </sourceDirectories>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
 </project>
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 0330e77..55f0959 100644
--- 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
@@ -20,7 +20,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.SpanLayer;
+import org.apache.skywalking.apm.network.language.agent.*;
 import org.apache.skywalking.oap.server.core.*;
 import org.apache.skywalking.oap.server.core.cache.*;
 import org.apache.skywalking.oap.server.core.source.*;
@@ -43,7 +43,7 @@ import static java.util.Objects.nonNull;
  *
  * @author peng-yongsheng, wusheng
  */
-public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListener {
+public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListener, GlobalTraceIdsListener {
 
     private static final Logger logger = LoggerFactory.getLogger(MultiScopesSpanListener.class);
 
@@ -58,6 +58,7 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
     private final TraceServiceModuleConfig config;
     private SpanDecorator entrySpanDecorator;
     private long minuteTimeBucket;
+    private String traceId;
 
     private MultiScopesSpanListener(ModuleManager moduleManager, TraceServiceModuleConfig config) {
         this.sourceReceiver = moduleManager.find(CoreModule.NAME).provider().getService(SourceReceiver.class);
@@ -68,10 +69,11 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
         this.serviceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInventoryCache.class);
         this.endpointInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(EndpointInventoryCache.class);
         this.config = config;
+        this.traceId = null;
     }
 
     @Override public boolean containsPoint(Point point) {
-        return Point.Entry.equals(point) || Point.Exit.equals(point);
+        return Point.Entry.equals(point) || Point.Exit.equals(point) || Point.TraceIds.equals(point);
     }
 
     @Override
@@ -156,7 +158,7 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
             statement.setDatabaseServiceId(sourceBuilder.getDestServiceId());
             statement.setLatency(sourceBuilder.getLatency());
             statement.setTimeBucket(TimeBucketUtils.INSTANCE.getSecondTimeBucket(segmentCoreInfo.getStartTime()));
-            statement.setTraceId(segmentCoreInfo.getSegmentId());
+            statement.setTraceId(traceId);
             for (KeyStringValuePair tag : spanDecorator.getAllTags()) {
                 if (SpanTags.DB_STATEMENT.equals(tag.getKey())) {
                     statement.setStatement(tag.getValue());
@@ -242,6 +244,20 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
         slowDatabaseAccesses.forEach(sourceReceiver::receive);
     }
 
+    @Override public void parseGlobalTraceId(UniqueId uniqueId, SegmentCoreInfo segmentCoreInfo) {
+        if (traceId == null) {
+            StringBuilder traceIdBuilder = new StringBuilder();
+            for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
+                if (i == 0) {
+                    traceIdBuilder.append(uniqueId.getIdPartsList().get(i));
+                } else {
+                    traceIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
+                }
+            }
+            traceId = traceIdBuilder.toString();
+        }
+    }
+
     public static class Factory implements SpanListenerFactory {
 
         @Override
diff --git a/pom.xml b/pom.xml
index 8f87c44..f9ff4fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -133,8 +133,8 @@
         <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
         <versions-maven-plugin.version>2.5</versions-maven-plugin.version>
         <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
-        <jacoco-maven-plugin.version>0.8.1</jacoco-maven-plugin.version>
         <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
+        <jacoco-maven-plugin.version>0.8.3</jacoco-maven-plugin.version>
     </properties>
 
     <dependencies>
@@ -384,21 +384,16 @@
                 <artifactId>coveralls-maven-plugin</artifactId>
                 <version>${coveralls-maven-plugin.version}</version>
                 <configuration>
+                    <repoToken>xFwR2GqmxcMxV7tGEpW2NfwIrbCD4cQCS</repoToken>
                     <sourceDirectories>
                         <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                     </sourceDirectories>
                 </configuration>
             </plugin>
-            <!-- 覆盖率 -->
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
                 <version>${jacoco-maven-plugin.version}</version>
-                <configuration>
-                    <excludes>
-                        <exclude>*MethodAccess</exclude>
-                    </excludes>
-                </configuration>
                 <executions>
                     <execution>
                         <id>prepare-agent</id>