diff --git a/README.md b/README.md
index bcdb0036a..b2ef5ad24 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Sky Walking | [中文](README_ZH.md)
# Document
-* [WIKI](https://github.com/OpenSkywalking/skywalking/wiki)
+[](docs/README.md) [](docs/README_ZH.md)
This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to wu.sheng@foxmail.com.
diff --git a/README_ZH.md b/README_ZH.md
index 32374fd75..8f486309b 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -28,7 +28,7 @@ Sky Walking | [English](README.md)
# Document
-* [WIKI](https://github.com/OpenSkywalking/skywalking/wiki)
+[](docs/README.md) [](docs/README_ZH.md)
This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to wu.sheng@foxmail.com.
diff --git a/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml b/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml
index a5dfb5220..46334d582 100644
--- a/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml
@@ -23,7 +23,7 @@
apm-application-toolkit
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml b/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml
index 002d67dba..ab3778be8 100644
--- a/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml
@@ -23,7 +23,7 @@
apm-application-toolkit
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml b/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml
index a5ea91e8a..e51649ba5 100644
--- a/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml
@@ -23,7 +23,7 @@
apm-application-toolkit
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-application-toolkit/apm-toolkit-logback-1.x/src/main/java/org/skywalking/apm/toolkit/log/logback/v1/x/mdc/LogbackMDCPatternConverter.java b/apm-application-toolkit/apm-toolkit-logback-1.x/src/main/java/org/skywalking/apm/toolkit/log/logback/v1/x/mdc/LogbackMDCPatternConverter.java
new file mode 100644
index 000000000..e1c8d7b08
--- /dev/null
+++ b/apm-application-toolkit/apm-toolkit-logback-1.x/src/main/java/org/skywalking/apm/toolkit/log/logback/v1/x/mdc/LogbackMDCPatternConverter.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.toolkit.log.logback.v1.x.mdc;
+
+import ch.qos.logback.classic.pattern.MDCConverter;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.util.OptionHelper;
+
+/**
+ * @author zhangkewei
+ */
+public class LogbackMDCPatternConverter extends MDCConverter {
+ private static final String CONVERT_KEY = "tid";
+
+ private boolean convert4TID = false;
+ @Override
+ public void start() {
+ super.start();
+ String[] key = OptionHelper.extractDefaultReplacement(getFirstOption());
+ if (null != key && key.length > 0 && CONVERT_KEY.equals(key[0])) {
+ convert4TID = true;
+ }
+ }
+ @Override
+ public String convert(ILoggingEvent iLoggingEvent) {
+ return convert4TID ? convertTID() : super.convert(iLoggingEvent);
+ }
+
+ public String convertTID() {
+ return "TID: N/A";
+ }
+}
diff --git a/apm-application-toolkit/apm-toolkit-logback-1.x/src/main/java/org/skywalking/apm/toolkit/log/logback/v1/x/mdc/TraceIdMDCPatternLogbackLayout.java b/apm-application-toolkit/apm-toolkit-logback-1.x/src/main/java/org/skywalking/apm/toolkit/log/logback/v1/x/mdc/TraceIdMDCPatternLogbackLayout.java
new file mode 100644
index 000000000..d67142578
--- /dev/null
+++ b/apm-application-toolkit/apm-toolkit-logback-1.x/src/main/java/org/skywalking/apm/toolkit/log/logback/v1/x/mdc/TraceIdMDCPatternLogbackLayout.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.toolkit.log.logback.v1.x.mdc;
+
+import ch.qos.logback.classic.PatternLayout;
+
+/**
+ * Override "X",SuperClass run before Subclass.
+ * @author zhangkewei
+ */
+public class TraceIdMDCPatternLogbackLayout extends PatternLayout {
+ static {
+ defaultConverterMap.put("X", LogbackMDCPatternConverter.class.getName());
+ }
+}
diff --git a/apm-application-toolkit/apm-toolkit-opentracing/pom.xml b/apm-application-toolkit/apm-toolkit-opentracing/pom.xml
index ec4534b03..cb7f2e989 100644
--- a/apm-application-toolkit/apm-toolkit-opentracing/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-opentracing/pom.xml
@@ -23,7 +23,7 @@
apm-application-toolkit
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-application-toolkit/apm-toolkit-trace/pom.xml b/apm-application-toolkit/apm-toolkit-trace/pom.xml
index edf30ac88..4489fd577 100644
--- a/apm-application-toolkit/apm-toolkit-trace/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-trace/pom.xml
@@ -22,7 +22,7 @@
apm-application-toolkit
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-application-toolkit/pom.xml b/apm-application-toolkit/pom.xml
index 830919418..0d4ab34f7 100644
--- a/apm-application-toolkit/pom.xml
+++ b/apm-application-toolkit/pom.xml
@@ -21,7 +21,7 @@
apm
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
apm-application-toolkit
diff --git a/apm-collector-3.2.3/apm-collector-agentjvm/pom.xml b/apm-collector-3.2.3/apm-collector-agentjvm/pom.xml
index 85825a005..1eaee624a 100644
--- a/apm-collector-3.2.3/apm-collector-agentjvm/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-agentjvm/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-agentregister/pom.xml b/apm-collector-3.2.3/apm-collector-agentregister/pom.xml
index db44ba6ba..1e988fada 100644
--- a/apm-collector-3.2.3/apm-collector-agentregister/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-agentregister/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-agentserver/pom.xml b/apm-collector-3.2.3/apm-collector-agentserver/pom.xml
index 5c4cf9c1c..8d936b29d 100644
--- a/apm-collector-3.2.3/apm-collector-agentserver/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-agentserver/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-agentstream/pom.xml b/apm-collector-3.2.3/apm-collector-agentstream/pom.xml
index cf9c317da..f709582d2 100644
--- a/apm-collector-3.2.3/apm-collector-agentstream/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-agentstream/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java
index 01c98fa1c..26026dc09 100644
--- a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java
+++ b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java
@@ -60,6 +60,7 @@ public class NodeComponentSpanListener implements EntrySpanListener, ExitSpanLis
}
nodeComponent.setPeerId(spanDecorator.getPeerId());
+ nodeComponent.setPeer(Const.EMPTY_STRING);
id = id + Const.ID_SPLIT + nodeComponent.getPeerId();
nodeComponent.setId(id);
nodeComponents.add(nodeComponent);
@@ -81,6 +82,7 @@ public class NodeComponentSpanListener implements EntrySpanListener, ExitSpanLis
}
nodeComponent.setPeerId(applicationId);
+ nodeComponent.setPeer(Const.EMPTY_STRING);
id = id + Const.ID_SPLIT + String.valueOf(applicationId);
nodeComponent.setId(id);
diff --git a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java
index 6cbe12ffa..d0b76fe34 100644
--- a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java
+++ b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java
@@ -51,6 +51,7 @@ public class NodeMappingSpanListener implements RefsListener, FirstSpanListener
NodeMappingDataDefine.NodeMapping nodeMapping = new NodeMappingDataDefine.NodeMapping();
nodeMapping.setApplicationId(applicationId);
nodeMapping.setAddressId(referenceDecorator.getNetworkAddressId());
+ nodeMapping.setAddress(Const.EMPTY_STRING);
String id = String.valueOf(applicationId) + Const.ID_SPLIT + String.valueOf(nodeMapping.getAddressId());
nodeMapping.setId(id);
nodeMappings.add(nodeMapping);
diff --git a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/NodeReferenceSpanListener.java b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/NodeReferenceSpanListener.java
index 8455922d0..8e309c69e 100644
--- a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/NodeReferenceSpanListener.java
+++ b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/NodeReferenceSpanListener.java
@@ -53,6 +53,7 @@ public class NodeReferenceSpanListener implements EntrySpanListener, ExitSpanLis
NodeReferenceDataDefine.NodeReference nodeReference = new NodeReferenceDataDefine.NodeReference();
nodeReference.setFrontApplicationId(applicationId);
nodeReference.setBehindApplicationId(spanDecorator.getPeerId());
+ nodeReference.setBehindPeer(Const.EMPTY_STRING);
nodeReference.setTimeBucket(TimeBucketUtils.INSTANCE.getMinuteTimeBucket(spanDecorator.getStartTime()));
StringBuilder idBuilder = new StringBuilder();
@@ -79,6 +80,7 @@ public class NodeReferenceSpanListener implements EntrySpanListener, ExitSpanLis
NodeReferenceDataDefine.NodeReference nodeReference = new NodeReferenceDataDefine.NodeReference();
nodeReference.setFrontApplicationId(Const.USER_ID);
nodeReference.setBehindApplicationId(applicationId);
+ nodeReference.setBehindPeer(Const.EMPTY_STRING);
nodeReference.setTimeBucket(TimeBucketUtils.INSTANCE.getMinuteTimeBucket(spanDecorator.getStartTime()));
String idBuilder = String.valueOf(nodeReference.getTimeBucket()) + Const.ID_SPLIT + nodeReference.getFrontApplicationId() +
@@ -96,6 +98,7 @@ public class NodeReferenceSpanListener implements EntrySpanListener, ExitSpanLis
NodeReferenceDataDefine.NodeReference referenceSum = new NodeReferenceDataDefine.NodeReference();
referenceSum.setFrontApplicationId(parentApplicationId);
referenceSum.setBehindApplicationId(applicationId);
+ referenceSum.setBehindPeer(Const.EMPTY_STRING);
references.add(referenceSum);
}
diff --git a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/ServiceReferenceSpanListener.java b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/ServiceReferenceSpanListener.java
index c25b66525..0115fc58e 100644
--- a/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/ServiceReferenceSpanListener.java
+++ b/apm-collector-3.2.3/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/ServiceReferenceSpanListener.java
@@ -127,12 +127,15 @@ public class ServiceReferenceSpanListener implements FirstSpanListener, EntrySpa
idBuilder.append(entryServiceId).append(Const.ID_SPLIT);
serviceReference.setEntryServiceId(entryServiceId);
+ serviceReference.setEntryServiceName(Const.EMPTY_STRING);
idBuilder.append(frontServiceId).append(Const.ID_SPLIT);
serviceReference.setFrontServiceId(frontServiceId);
+ serviceReference.setFrontServiceName(Const.EMPTY_STRING);
idBuilder.append(behindServiceId);
serviceReference.setBehindServiceId(behindServiceId);
+ serviceReference.setBehindServiceName(Const.EMPTY_STRING);
serviceReference.setId(idBuilder.toString());
serviceReference.setTimeBucket(timeBucket);
diff --git a/apm-collector-3.2.3/apm-collector-boot/pom.xml b/apm-collector-3.2.3/apm-collector-boot/pom.xml
index 24cf9a221..ae19d6fff 100644
--- a/apm-collector-3.2.3/apm-collector-boot/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-boot/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-cache/pom.xml b/apm-collector-3.2.3/apm-collector-cache/pom.xml
index cad8a0c03..0b1dfbb0a 100644
--- a/apm-collector-3.2.3/apm-collector-cache/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-cache/pom.xml
@@ -5,7 +5,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -24,4 +24,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector-3.2.3/apm-collector-client/pom.xml b/apm-collector-3.2.3/apm-collector-client/pom.xml
index 9e7710c04..d6ea5c4f3 100644
--- a/apm-collector-3.2.3/apm-collector-client/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-client/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-cluster/pom.xml b/apm-collector-3.2.3/apm-collector-cluster/pom.xml
index 3ac35f1c6..77d472d42 100644
--- a/apm-collector-3.2.3/apm-collector-cluster/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-cluster/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-core/pom.xml b/apm-collector-3.2.3/apm-collector-core/pom.xml
index ab8795e0b..719ffe822 100644
--- a/apm-collector-3.2.3/apm-collector-core/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-core/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-queue/pom.xml b/apm-collector-3.2.3/apm-collector-queue/pom.xml
index b6e8b9762..8fad53f35 100644
--- a/apm-collector-3.2.3/apm-collector-queue/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-queue/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/DisruptorQueueCreator.java b/apm-collector-3.2.3/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/DisruptorQueueCreator.java
index 8cdca483b..320a22206 100644
--- a/apm-collector-3.2.3/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/DisruptorQueueCreator.java
+++ b/apm-collector-3.2.3/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/DisruptorQueueCreator.java
@@ -18,6 +18,7 @@
package org.skywalking.apm.collector.queue.disruptor;
+import com.lmax.disruptor.ExceptionHandler;
import com.lmax.disruptor.RingBuffer;
import com.lmax.disruptor.dsl.Disruptor;
import org.skywalking.apm.collector.core.queue.DaemonThreadFactory;
@@ -25,12 +26,16 @@ import org.skywalking.apm.collector.core.queue.MessageHolder;
import org.skywalking.apm.collector.core.queue.QueueCreator;
import org.skywalking.apm.collector.core.queue.QueueEventHandler;
import org.skywalking.apm.collector.core.queue.QueueExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @author peng-yongsheng
*/
public class DisruptorQueueCreator implements QueueCreator {
+ private final Logger logger = LoggerFactory.getLogger(DisruptorQueueCreator.class);
+
@Override public QueueEventHandler create(int queueSize, QueueExecutor executor) {
// Specify the size of the ring buffer, must be power of 2.
if (!((((queueSize - 1) & queueSize) == 0) && queueSize != 0)) {
@@ -40,6 +45,20 @@ public class DisruptorQueueCreator implements QueueCreator {
// Construct the Disruptor
Disruptor disruptor = new Disruptor(MessageHolderFactory.INSTANCE, queueSize, DaemonThreadFactory.INSTANCE);
+ disruptor.setDefaultExceptionHandler(new ExceptionHandler() {
+ @Override public void handleEventException(Throwable ex, long sequence, MessageHolder event) {
+ logger.error("handler message error! message: {}.", event.getMessage(), ex);
+ }
+
+ @Override public void handleOnStartException(Throwable ex) {
+ logger.error("create disruptor failed!", ex);
+ }
+
+ @Override public void handleOnShutdownException(Throwable ex) {
+ logger.error("shutdown disruptor failed!", ex);
+ }
+ });
+
RingBuffer ringBuffer = disruptor.getRingBuffer();
DisruptorEventHandler eventHandler = new DisruptorEventHandler(ringBuffer, executor);
diff --git a/apm-collector-3.2.3/apm-collector-remote/pom.xml b/apm-collector-3.2.3/apm-collector-remote/pom.xml
index 7750e45cb..19674c4c8 100644
--- a/apm-collector-3.2.3/apm-collector-remote/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-remote/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-server/pom.xml b/apm-collector-3.2.3/apm-collector-server/pom.xml
index 7e80186bd..3ff913821 100644
--- a/apm-collector-3.2.3/apm-collector-server/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-server/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-storage/pom.xml b/apm-collector-3.2.3/apm-collector-storage/pom.xml
index 0cdbfe074..87c09011a 100644
--- a/apm-collector-3.2.3/apm-collector-storage/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-storage/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-stream/pom.xml b/apm-collector-3.2.3/apm-collector-stream/pom.xml
index 2abb8bcda..d34062e17 100644
--- a/apm-collector-3.2.3/apm-collector-stream/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-stream/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/apm-collector-ui/pom.xml b/apm-collector-3.2.3/apm-collector-ui/pom.xml
index d1b4b2ca5..afe5bcf0b 100644
--- a/apm-collector-3.2.3/apm-collector-ui/pom.xml
+++ b/apm-collector-3.2.3/apm-collector-ui/pom.xml
@@ -23,7 +23,7 @@
apm-collector-3.2.3
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector-3.2.3/pom.xml b/apm-collector-3.2.3/pom.xml
index a3eee4619..549f426e7 100644
--- a/apm-collector-3.2.3/pom.xml
+++ b/apm-collector-3.2.3/pom.xml
@@ -40,7 +40,7 @@
apm
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
apm-collector-3.2.3
pom
diff --git a/apm-collector/apm-collector-agent/collector-agent-define/pom.xml b/apm-collector/apm-collector-agent/collector-agent-define/pom.xml
index 7dc8b36a9..21b3a90fd 100644
--- a/apm-collector/apm-collector-agent/collector-agent-define/pom.xml
+++ b/apm-collector/apm-collector-agent/collector-agent-define/pom.xml
@@ -23,11 +23,11 @@
apm-collector-agent
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
collector-agent-define
jar
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml b/apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml
index 610de903e..e8cc6071b 100644
--- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml
+++ b/apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml
@@ -23,7 +23,7 @@
apm-collector-agent
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -47,4 +47,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml
index 07cf7ea23..76638a1c3 100644
--- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml
+++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml
@@ -23,7 +23,7 @@
apm-collector-agent
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -42,4 +42,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/pom.xml b/apm-collector/apm-collector-agent/collector-agent-stream/pom.xml
index 5c1285c3f..9075a16ae 100644
--- a/apm-collector/apm-collector-agent/collector-agent-stream/pom.xml
+++ b/apm-collector/apm-collector-agent/collector-agent-stream/pom.xml
@@ -23,13 +23,14 @@
apm-collector-agent
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
collector-agent-stream
jar
+<<<<<<< HEAD
org.skywalking
@@ -37,4 +38,8 @@
${project.version}
-
\ No newline at end of file
+
+=======
+
+
+>>>>>>> 406c4f52d8251eb81aa868ec38f17789e18e0dc0
diff --git a/apm-collector/apm-collector-agent/pom.xml b/apm-collector/apm-collector-agent/pom.xml
index fa334830f..815f54994 100644
--- a/apm-collector/apm-collector-agent/pom.xml
+++ b/apm-collector/apm-collector-agent/pom.xml
@@ -5,7 +5,7 @@
apm-collector
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -25,4 +25,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml
index acae89589..05ef93a05 100644
--- a/apm-collector/apm-collector-boot/pom.xml
+++ b/apm-collector/apm-collector-boot/pom.xml
@@ -23,7 +23,7 @@
apm-collector
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector/apm-collector-cache/pom.xml b/apm-collector/apm-collector-cache/pom.xml
index e901f5e27..55983ea3a 100644
--- a/apm-collector/apm-collector-cache/pom.xml
+++ b/apm-collector/apm-collector-cache/pom.xml
@@ -5,7 +5,7 @@
apm-collector
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -24,4 +24,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml
index 582b5f533..7ab818226 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml
@@ -23,11 +23,11 @@
apm-collector-cluster
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
collector-cluster-define
jar
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml
index 7392f98cf..0aa6f15cb 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml
@@ -23,7 +23,7 @@
apm-collector-cluster
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -37,4 +37,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml
index 6ef4e4076..6803fbdd0 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml
@@ -23,7 +23,7 @@
apm-collector-cluster
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -37,4 +37,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml
index ce8d169bc..b29b973fb 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml
@@ -23,7 +23,7 @@
apm-collector-cluster
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -37,4 +37,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-cluster/pom.xml b/apm-collector/apm-collector-cluster/pom.xml
index f0b2e2935..341bbbace 100644
--- a/apm-collector/apm-collector-cluster/pom.xml
+++ b/apm-collector/apm-collector-cluster/pom.xml
@@ -5,7 +5,7 @@
apm-collector
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector/apm-collector-component/client-component/pom.xml b/apm-collector/apm-collector-component/client-component/pom.xml
index 21e367804..066325e21 100644
--- a/apm-collector/apm-collector-component/client-component/pom.xml
+++ b/apm-collector/apm-collector-component/client-component/pom.xml
@@ -5,7 +5,7 @@
apm-collector-component
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -55,4 +55,4 @@
1.4.0
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-component/pom.xml b/apm-collector/apm-collector-component/pom.xml
index 31317c644..af78e4f0e 100644
--- a/apm-collector/apm-collector-component/pom.xml
+++ b/apm-collector/apm-collector-component/pom.xml
@@ -5,7 +5,7 @@
apm-collector
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -23,4 +23,4 @@
${project.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-component/server-component/pom.xml b/apm-collector/apm-collector-component/server-component/pom.xml
index a0c33f864..0238d63e0 100644
--- a/apm-collector/apm-collector-component/server-component/pom.xml
+++ b/apm-collector/apm-collector-component/server-component/pom.xml
@@ -5,7 +5,7 @@
apm-collector-component
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
@@ -33,4 +33,4 @@
${jetty.version}
-
\ No newline at end of file
+
diff --git a/apm-collector/apm-collector-core/pom.xml b/apm-collector/apm-collector-core/pom.xml
index 4cb512837..3ab0bc9dc 100644
--- a/apm-collector/apm-collector-core/pom.xml
+++ b/apm-collector/apm-collector-core/pom.xml
@@ -5,7 +5,7 @@
apm-collector
org.skywalking
- 3.2.3-2017
+ 3.2.4-2017
4.0.0
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/DirectWay.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/DirectWay.java
new file mode 100644
index 000000000..bdf85745f
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/DirectWay.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.collector.core.graph;
+
+/**
+ * @author wusheng
+ */
+public class DirectWay extends WayToNode {
+ public DirectWay(NodeProcessor destinationHandler) {
+ super(destinationHandler);
+ }
+
+ @Override protected void in(INPUT o) {
+ out(o);
+ }
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java
index 13d4ea729..32a790f3e 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java
@@ -43,24 +43,25 @@ public final class Graph {
}
}
- public Next findNext(int handlerId) {
- Node node = nodeIndex.get(handlerId);
- if (node == null) {
- throw new NodeNotFoundException("Can't find node with handlerId="
- + handlerId
- + " in graph[" + id + "】");
- }
- return node.getNext();
- }
-
void checkForNewNode(Node node) {
int nodeId = node.getHandler().id();
if (nodeIndex.containsKey(nodeId)) {
- throw new PotentialAcyclicGraphException("handler="
+ throw new PotentialCyclicGraphException("handler="
+ node.getHandler().getClass().getName()
+ " already exists in graph[" + id + "】");
}
nodeIndex.put(nodeId, node);
}
+ public GraphNodeFinder toFinder() {
+ return new GraphNodeFinder(this);
+ }
+
+ ConcurrentHashMap getNodeIndex() {
+ return nodeIndex;
+ }
+
+ int getId() {
+ return id;
+ }
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphManager.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphManager.java
index a77d9de9b..b0803a951 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphManager.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphManager.java
@@ -52,4 +52,8 @@ public enum GraphManager {
}
return graph;
}
+
+ public void reset() {
+ allGraphs.clear();
+ }
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphNodeFinder.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphNodeFinder.java
new file mode 100644
index 000000000..b48a01516
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphNodeFinder.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2017, OpenSkywalking Organization All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Project repository: https://github.com/OpenSkywalking/skywalking
+ */
+
+package org.skywalking.apm.collector.core.graph;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @author wu-sheng
+ */
+public class GraphNodeFinder {
+ private Graph graph;
+
+ GraphNodeFinder(Graph graph) {
+ this.graph = graph;
+ }
+
+ /**
+ * Find an exist node to build the graph.
+ *
+ * @param handlerId of specific node in graph.
+ * @param outputClass of the found node
+ * @param type of given output class
+ * @return Node instance.
+ */
+ public Node, NODE_OUTPUT> findNode(int handlerId, Class outputClass) {
+ ConcurrentHashMap graphNodeIndex = graph.getNodeIndex();
+ Node node = graphNodeIndex.get(handlerId);
+ if (node == null) {
+ throw new NodeNotFoundException("Can't find node with handlerId="
+ + handlerId
+ + " in graph[" + graph.getId() + "]");
+ }
+ return node;
+ }
+
+ public Next findNext(int handlerId) {
+ ConcurrentHashMap graphNodeIndex = graph.getNodeIndex();
+ Node node = graphNodeIndex.get(handlerId);
+ if (node == null) {
+ throw new NodeNotFoundException("Can't find node with handlerId="
+ + handlerId
+ + " in graph[" + graph.getId() + "]");
+ }
+ return node.getNext();
+ }
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Next.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Next.java
index ba8e6c049..31ddba477 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Next.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Next.java
@@ -29,14 +29,14 @@ import org.skywalking.apm.collector.core.framework.Executor;
*/
public class Next implements Executor {
- private final List nextNodes;
+ private final List ways;
public Next() {
- this.nextNodes = new LinkedList<>();
+ this.ways = new LinkedList<>();
}
- public final void addNext(Node node) {
- nextNodes.add(node);
+ final void addWay(WayToNode way) {
+ ways.add(way);
}
/**
@@ -45,6 +45,6 @@ public class Next implements Executor {
* @param INPUT
*/
@Override public void execute(INPUT INPUT) {
- nextNodes.forEach(node -> node.execute(INPUT));
+ ways.forEach(way -> way.in(INPUT));
}
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Node.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Node.java
index 39f2c7d7c..e5bda3038 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Node.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Node.java
@@ -36,10 +36,14 @@ public final class Node {
}
public final Node