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 2020/08/08 06:40:11 UTC

[skywalking] branch master updated: Fix kafka plugin sometimes trace doesn't show span layer (#5264)

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/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 9b6a4ed  Fix kafka plugin sometimes trace doesn't show span layer (#5264)
9b6a4ed is described below

commit 9b6a4ed28ce957238851cb0a504ff8ad3c74e59b
Author: yangy <ro...@jcod3r.com>
AuthorDate: Sat Aug 8 14:39:54 2020 +0800

    Fix kafka plugin sometimes trace doesn't show span layer (#5264)
---
 .../skywalking/apm/plugin/kafka/CallbackAdapterInterceptor.java       | 2 ++
 .../org/apache/skywalking/apm/plugin/kafka/CallbackInterceptor.java   | 2 ++
 test/plugin/scenarios/kafka-scenario/config/expectedData.yaml         | 4 ++--
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackAdapterInterceptor.java b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackAdapterInterceptor.java
index d296c3f..df3d4ab 100644
--- a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackAdapterInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackAdapterInterceptor.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.apm.agent.core.context.ContextManager;
 import org.apache.skywalking.apm.agent.core.context.ContextSnapshot;
 import org.apache.skywalking.apm.agent.core.context.tag.Tags;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
 
 /**
@@ -44,6 +45,7 @@ public class CallbackAdapterInterceptor implements Callback {
     public void onCompletion(RecordMetadata metadata, Exception exception) {
         ContextSnapshot snapshot = callbackCache.getSnapshot();
         AbstractSpan activeSpan = ContextManager.createLocalSpan("Kafka/Producer/Callback");
+        SpanLayer.asMQ(activeSpan);
         activeSpan.setComponent(ComponentsDefine.KAFKA_PRODUCER);
         if (metadata != null) {
             Tags.MQ_TOPIC.set(activeSpan, metadata.topic());
diff --git a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackInterceptor.java b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackInterceptor.java
index 96e763e..8cba764 100644
--- a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/main/java/org/apache/skywalking/apm/plugin/kafka/CallbackInterceptor.java
@@ -23,6 +23,7 @@ import org.apache.skywalking.apm.agent.core.context.ContextManager;
 import org.apache.skywalking.apm.agent.core.context.ContextSnapshot;
 import org.apache.skywalking.apm.agent.core.context.tag.Tags;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
@@ -43,6 +44,7 @@ public class CallbackInterceptor implements InstanceMethodsAroundInterceptor {
             ContextSnapshot snapshot = getSnapshot(cache);
             RecordMetadata metadata = (RecordMetadata) allArguments[0];
             AbstractSpan activeSpan = ContextManager.createLocalSpan("Kafka/Producer/Callback");
+            SpanLayer.asMQ(activeSpan);
             activeSpan.setComponent(ComponentsDefine.KAFKA_PRODUCER);
             if (metadata != null) {
                 // Null if an error occurred during processing of this record
diff --git a/test/plugin/scenarios/kafka-scenario/config/expectedData.yaml b/test/plugin/scenarios/kafka-scenario/config/expectedData.yaml
index 1dee9ea..171eb57 100644
--- a/test/plugin/scenarios/kafka-scenario/config/expectedData.yaml
+++ b/test/plugin/scenarios/kafka-scenario/config/expectedData.yaml
@@ -23,7 +23,7 @@ segmentItems:
       operationId: 0
       parentSpanId: -1
       spanId: 0
-      spanLayer: Unknown
+      spanLayer: MQ
       startTime: nq 0
       endTime: nq 0
       componentId: 40
@@ -43,7 +43,7 @@ segmentItems:
         operationId: 0
         parentSpanId: -1
         spanId: 0
-        spanLayer: Unknown
+        spanLayer: MQ
         startTime: nq 0
         endTime: nq 0
         componentId: 40