未验证 提交 479ee332 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

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.
上级 333bcd48
......@@ -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
......@@ -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>
......@@ -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
......
......@@ -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>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册