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 2018/11/17 16:04:18 UTC

[incubator-skywalking] branch zipkin-receiver updated: Fix register bug.

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

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


The following commit(s) were added to refs/heads/zipkin-receiver by this push:
     new 1656e29  Fix register bug.
1656e29 is described below

commit 1656e29f6cb4e049071bf0e2cca788adb823b71d
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Sun Nov 18 00:04:09 2018 +0800

    Fix register bug.
---
 .../oap/server/receiver/zipkin/transform/SegmentBuilder.java       | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/transform/SegmentBuilder.java b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/transform/SegmentBuilder.java
index 8d1e71b..5201a04 100644
--- a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/transform/SegmentBuilder.java
+++ b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/transform/SegmentBuilder.java
@@ -79,6 +79,7 @@ public class SegmentBuilder {
         });
 
         Span rootSpan = root.get();
+        long timestamp = 0;
         if (rootSpan != null) {
             String applicationCode = rootSpan.localServiceName();
             // If root span doesn't include applicationCode, a.k.a local service name,
@@ -87,6 +88,7 @@ public class SegmentBuilder {
             // :P Hope anyone could provide better solution.
             // Wu Sheng.
             if (StringUtils.isNotEmpty(applicationCode)) {
+                timestamp = rootSpan.timestampAsLong();
                 builder.context.addApp(applicationCode, rootSpan.timestampAsLong());
 
                 SpanObject.Builder rootSpanBuilder = builder.initSpan(null, null, rootSpan, true);
@@ -98,11 +100,12 @@ public class SegmentBuilder {
         }
 
         List<TraceSegmentObject.Builder> segmentBuilders = new LinkedList<>();
+        long finalTimestamp = timestamp;
         builder.segments.forEach(segment -> {
             TraceSegmentObject.Builder traceSegmentBuilder = segment.freeze();
             segmentBuilders.add(traceSegmentBuilder);
-            CoreRegisterLinker.getServiceInventoryRegister().heartbeat(traceSegmentBuilder.getApplicationId(), segment.getEndTime());
-            CoreRegisterLinker.getServiceInstanceInventoryRegister().heartbeat(traceSegmentBuilder.getApplicationInstanceId(), segment.getEndTime());
+            CoreRegisterLinker.getServiceInventoryRegister().heartbeat(traceSegmentBuilder.getApplicationId(), finalTimestamp);
+            CoreRegisterLinker.getServiceInstanceInventoryRegister().heartbeat(traceSegmentBuilder.getApplicationInstanceId(), finalTimestamp);
         });
         return new SkyWalkingTrace(builder.generateTraceOrSegmentId(), segmentBuilders);
     }