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/27 12:19:25 UTC

[incubator-skywalking] branch master updated: Add peer to entry span (#2287)

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 1c32d59  Add peer to entry span (#2287)
1c32d59 is described below

commit 1c32d5954253f8229c551dcb35a5f99f575d5529
Author: Xin,Zhang <zh...@apache.org>
AuthorDate: Wed Feb 27 20:19:18 2019 +0800

    Add peer to entry span (#2287)
    
    * Add peer to entry span
    
    * Fix CI
---
 .../apm/agent/core/context/trace/AbstractSpan.java |  2 +
 .../apm/agent/core/context/trace/ExitSpan.java     | 32 ++----------
 .../apm/agent/core/context/trace/LocalSpan.java    |  4 ++
 .../apm/agent/core/context/trace/NoopSpan.java     |  4 ++
 .../core/context/trace/StackBasedTracingSpan.java  | 61 ++++++++++++++++++++++
 5 files changed, 75 insertions(+), 28 deletions(-)

diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractSpan.java
index c6e2039..17e8aef 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractSpan.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractSpan.java
@@ -127,4 +127,6 @@ public interface AbstractSpan {
     void ref(TraceSegmentRef ref);
 
     AbstractSpan start(long starttime);
+
+    AbstractSpan setPeer(String remotePeer);
 }
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/ExitSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/ExitSpan.java
index 5efe521..29a5aaf 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/ExitSpan.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/ExitSpan.java
@@ -20,8 +20,6 @@
 package org.apache.skywalking.apm.agent.core.context.trace;
 
 import org.apache.skywalking.apm.agent.core.context.tag.AbstractTag;
-import org.apache.skywalking.apm.agent.core.dictionary.DictionaryUtil;
-import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
 import org.apache.skywalking.apm.network.trace.component.Component;
 
 /**
@@ -38,31 +36,21 @@ import org.apache.skywalking.apm.network.trace.component.Component;
  * @author wusheng
  */
 public class ExitSpan extends StackBasedTracingSpan implements WithPeerInfo {
-    private String peer;
-    private int peerId;
 
     public ExitSpan(int spanId, int parentSpanId, String operationName, String peer) {
-        super(spanId, parentSpanId, operationName);
-        this.peer = peer;
-        this.peerId = DictionaryUtil.nullValue();
+        super(spanId, parentSpanId, operationName, peer);
     }
 
     public ExitSpan(int spanId, int parentSpanId, int operationId, int peerId) {
-        super(spanId, parentSpanId, operationId);
-        this.peer = null;
-        this.peerId = peerId;
+        super(spanId, parentSpanId, operationId, peerId);
     }
 
     public ExitSpan(int spanId, int parentSpanId, int operationId, String peer) {
-        super(spanId, parentSpanId, operationId);
-        this.peer = peer;
-        this.peerId = DictionaryUtil.nullValue();
+        super(spanId, parentSpanId, operationId, peer);
     }
 
     public ExitSpan(int spanId, int parentSpanId, String operationName, int peerId) {
-        super(spanId, parentSpanId, operationName);
-        this.peer = null;
-        this.peerId = peerId;
+        super(spanId, parentSpanId, operationName, peerId);
     }
 
     /**
@@ -126,18 +114,6 @@ public class ExitSpan extends StackBasedTracingSpan implements WithPeerInfo {
         return this;
     }
 
-    @Override public SpanObjectV2.Builder transform() {
-        SpanObjectV2.Builder spanBuilder = super.transform();
-        if (peerId != DictionaryUtil.nullValue()) {
-            spanBuilder.setPeerId(peerId);
-        } else {
-            if (peer != null) {
-                spanBuilder.setPeer(peer);
-            }
-        }
-        return spanBuilder;
-    }
-
     @Override
     public AbstractTracingSpan setOperationName(String operationName) {
         if (stackDepth == 1) {
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/LocalSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/LocalSpan.java
index fea4d2a..1bd4a77 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/LocalSpan.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/LocalSpan.java
@@ -53,4 +53,8 @@ public class LocalSpan extends AbstractTracingSpan {
     @Override public boolean isExit() {
         return false;
     }
+
+    @Override public AbstractSpan setPeer(String remotePeer) {
+        return this;
+    }
 }
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/NoopSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/NoopSpan.java
index d063b62..774ebca 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/NoopSpan.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/NoopSpan.java
@@ -111,4 +111,8 @@ public class NoopSpan implements AbstractSpan {
     @Override public AbstractSpan start(long startTime) {
         return this;
     }
+
+    @Override public AbstractSpan setPeer(String remotePeer) {
+        return this;
+    }
 }
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/StackBasedTracingSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/StackBasedTracingSpan.java
index dc0899a..afb0dfa 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/StackBasedTracingSpan.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/StackBasedTracingSpan.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.apm.agent.core.context.trace;
 import org.apache.skywalking.apm.agent.core.dictionary.DictionaryManager;
 import org.apache.skywalking.apm.agent.core.dictionary.DictionaryUtil;
 import org.apache.skywalking.apm.agent.core.dictionary.PossibleFound;
+import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
 
 /**
  * The <code>StackBasedTracingSpan</code> represents a span with an inside stack construction.
@@ -31,15 +32,58 @@ import org.apache.skywalking.apm.agent.core.dictionary.PossibleFound;
  */
 public abstract class StackBasedTracingSpan extends AbstractTracingSpan {
     protected int stackDepth;
+    protected String peer;
+    protected int peerId;
 
     protected StackBasedTracingSpan(int spanId, int parentSpanId, String operationName) {
         super(spanId, parentSpanId, operationName);
         this.stackDepth = 0;
+        this.peer = null;
+        this.peerId = DictionaryUtil.nullValue();
     }
 
     protected StackBasedTracingSpan(int spanId, int parentSpanId, int operationId) {
         super(spanId, parentSpanId, operationId);
         this.stackDepth = 0;
+        this.peer = null;
+        this.peerId = DictionaryUtil.nullValue();
+    }
+
+    public StackBasedTracingSpan(int spanId, int parentSpanId, int operationId, int peerId) {
+        super(spanId, parentSpanId, operationId);
+        this.peer = null;
+        this.peerId = peerId;
+    }
+
+    public StackBasedTracingSpan(int spanId, int parentSpanId, int operationId, String peer) {
+        super(spanId, parentSpanId, operationId);
+        this.peer = peer;
+        this.peerId = DictionaryUtil.nullValue();
+    }
+
+    protected StackBasedTracingSpan(int spanId, int parentSpanId, String operationName, String peer) {
+        super(spanId, parentSpanId, operationName);
+        this.peer = peer;
+        this.peerId = DictionaryUtil.nullValue();
+    }
+
+    protected StackBasedTracingSpan(int spanId, int parentSpanId, String operationName, int peerId) {
+        super(spanId, parentSpanId, operationName);
+        this.peer = null;
+        this.peerId = peerId;
+    }
+
+    @Override
+    public SpanObjectV2.Builder transform() {
+        SpanObjectV2.Builder spanBuilder = super.transform();
+        if (peerId != DictionaryUtil.nullValue()) {
+            spanBuilder.setPeerId(peerId);
+        } else {
+            if (peer != null) {
+                spanBuilder.setPeer(peer);
+            }
+        }
+        return spanBuilder;
     }
 
     @Override
@@ -66,4 +110,21 @@ public abstract class StackBasedTracingSpan extends AbstractTracingSpan {
             return false;
         }
     }
+
+    @Override public AbstractSpan setPeer(final String remotePeer) {
+        DictionaryManager.findNetworkAddressSection().find(remotePeer).doInCondition(
+            new PossibleFound.Found() {
+                @Override
+                public void doProcess(int remotePeerId) {
+                    peerId = remotePeerId;
+                }
+            }, new PossibleFound.NotFound() {
+                @Override
+                public void doProcess() {
+                    peer = remotePeer;
+                }
+            }
+        );
+        return this;
+    }
 }