diff --git a/apm-network/src/main/java/org/skywalking/apm/network/trace/component/Component.java b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/Component.java new file mode 100644 index 000000000..17a22a64c --- /dev/null +++ b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/Component.java @@ -0,0 +1,10 @@ +package org.skywalking.apm.network.trace.component; + +/** + * @author wusheng + */ +public interface Component { + int getId(); + + String getName(); +} diff --git a/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java new file mode 100644 index 000000000..ef1169e92 --- /dev/null +++ b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java @@ -0,0 +1,8 @@ +package org.skywalking.apm.network.trace.component; + +/** + * @author wusheng + */ +public class ComponentsDefine { + public static final OfficialComponent TOMCAT = new OfficialComponent(1, "Tomcat"); +} diff --git a/apm-network/src/main/java/org/skywalking/apm/network/trace/component/OfficialComponent.java b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/OfficialComponent.java new file mode 100644 index 000000000..114066b42 --- /dev/null +++ b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/OfficialComponent.java @@ -0,0 +1,24 @@ +package org.skywalking.apm.network.trace.component; + +/** + * @author wusheng + */ +public class OfficialComponent implements Component{ + private int id; + private String name; + + public OfficialComponent(int id, String name) { + this.id = id; + this.name = name; + } + + @Override + public int getId() { + return id; + } + + @Override + public String getName() { + return name; + } +} diff --git a/apm-network/src/main/proto/TraceSegmentService.proto b/apm-network/src/main/proto/TraceSegmentService.proto index 608faa70f..da9e216db 100644 --- a/apm-network/src/main/proto/TraceSegmentService.proto +++ b/apm-network/src/main/proto/TraceSegmentService.proto @@ -38,14 +38,16 @@ message SpanObject { int64 startTime = 3; int64 endTime = 4; int32 operationNameId = 5; - int32 peerId = 6; - string peer = 7; - SpanType spanType = 8; - SpanLayer spanLayer = 9; - string component = 10; - bool isError = 11; - repeated KeyValue tags = 12; - repeated LogMessage logs = 13; + string operationName = 6; + int32 peerId = 7; + string peer = 8; + SpanType spanType = 9; + SpanLayer spanLayer = 10; + int32 componentId = 11; + string component = 12; + bool isError = 13; + repeated KeyValue tags = 14; + repeated LogMessage logs = 15; } enum SpanType { diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/component/AbstractComponent.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/component/AbstractComponent.java deleted file mode 100644 index ef42cd2aa..000000000 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/component/AbstractComponent.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.skywalking.apm.agent.core.context.component; - -/** - * @author wusheng - */ -public abstract class AbstractComponent { - private int id; - private String name; - - protected AbstractComponent(int id, String name) { - this.id = id; - this.name = name; - } - - public int getId() { - return id; - } -} diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractSpan.java index eff8d6e95..917cec1c6 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractSpan.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractSpan.java @@ -1,5 +1,6 @@ package org.skywalking.apm.agent.core.context.trace; +import org.skywalking.apm.network.trace.component.Component; /** * The AbstractSpan represents the span's skeleton, @@ -8,6 +9,14 @@ package org.skywalking.apm.agent.core.context.trace; * @author wusheng */ public interface AbstractSpan { + /** + * Set the component id, which defines in {@link org.skywalking.apm.network.trace.component.ComponentsDefine} + * @param component + */ + void setComponent(Component component); + + void setComponent(String componentName); + void setLayer(SpanLayer layer); /** diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java index 239f1b685..ad12e70a3 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java @@ -2,10 +2,10 @@ package org.skywalking.apm.agent.core.context.trace; import java.util.LinkedList; import java.util.List; -import org.skywalking.apm.agent.core.context.component.AbstractComponent; import org.skywalking.apm.agent.core.context.util.KeyValuePair; import org.skywalking.apm.agent.core.context.util.ThrowableTransformer; import org.skywalking.apm.agent.core.dictionary.DictionaryUtil; +import org.skywalking.apm.network.trace.component.Component; /** * The AbstractTracingSpan represents a group of {@link AbstractSpan} implementations, @@ -35,6 +35,8 @@ public abstract class AbstractTracingSpan implements AbstractSpan { protected int componentId = 0; + protected String componentName; + /** * Log is a concept from OpenTracing spec. *

@@ -123,7 +125,13 @@ public abstract class AbstractTracingSpan implements AbstractSpan { this.layer = layer; } - public void setComponent(AbstractComponent component){ + @Override + public void setComponent(Component component) { this.componentId = component.getId(); } + + @Override + public void setComponent(String componentName) { + this.componentName = componentName; + } }