From 30dbdc82645ef4a538dffb125d9bddaf063cc47e Mon Sep 17 00:00:00 2001 From: ascrutae Date: Sun, 5 Nov 2017 08:20:56 +0800 Subject: [PATCH 01/20] support rocket mq plugin --- .../trace/component/ComponentsDefine.java | 5 +- apm-sniffer/apm-sdk-plugin/pom.xml | 1 + .../rocketMQ-4.x-plugin/pom.xml | 68 ++++++++++ .../AbstractMessageConsumeInterceptor.java | 77 +++++++++++ ...MessageConcurrentlyConsumeInterceptor.java | 50 +++++++ .../MessageOrderlyConsumeInterceptor.java | 51 +++++++ .../rocketMQ/v4/MessageSendInterceptor.java | 100 ++++++++++++++ .../rocketMQ/v4/OnExceptionInterceptor.java | 61 +++++++++ .../rocketMQ/v4/OnSuccessInterceptor.java | 68 ++++++++++ ...umeMessageConcurrentlyInstrumentation.java | 68 ++++++++++ .../ConsumeMessageOrderlyInstrumentation.java | 68 ++++++++++ .../MQClientAPIImplInstrumentation.java | 73 ++++++++++ .../v4/define/SendCallBackEnhanceInfo.java | 44 ++++++ .../define/SendCallbackInstrumentation.java | 87 ++++++++++++ .../src/main/resources/skywalking-plugin.def | 4 + .../v4/MessageSendInterceptorTest.java | 126 ++++++++++++++++++ .../v4/OnExceptionInterceptorTest.java | 87 ++++++++++++ .../rocketMQ/v4/OnSuccessInterceptorTest.java | 113 ++++++++++++++++ 18 files changed, 1150 insertions(+), 1 deletion(-) create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallBackEnhanceInfo.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallbackInstrumentation.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/resources/skywalking-plugin.def create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptorTest.java create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptorTest.java 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 index 0151346e8..9819e74c9 100644 --- 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 @@ -71,6 +71,8 @@ public class ComponentsDefine { public static final OfficialComponent GRPC = new OfficialComponent(23, "GRPC"); + public static final OfficialComponent ROCKET_MQ = new OfficialComponent(24, "RocketMQ"); + private static ComponentsDefine instance = new ComponentsDefine(); private String[] components; @@ -80,7 +82,7 @@ public class ComponentsDefine { } public ComponentsDefine() { - components = new String[24]; + components = new String[25]; addComponent(TOMCAT); addComponent(HTTPCLIENT); addComponent(DUBBO); @@ -104,6 +106,7 @@ public class ComponentsDefine { addComponent(SHARDING_JDBC); addComponent(POSTGRESQL); addComponent(GRPC); + addComponent(ROCKET_MQ); } private void addComponent(OfficialComponent component) { diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml index bae33b837..65dcca1bd 100644 --- a/apm-sniffer/apm-sdk-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/pom.xml @@ -52,6 +52,7 @@ h2-1.x-plugin postgresql-8.x-plugin oracle-10.x-plugin + rocketMQ-4.x-plugin pom diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml new file mode 100644 index 000000000..8ec9e4c08 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml @@ -0,0 +1,68 @@ + + + + + + apm-sdk-plugin + org.skywalking + 3.2.3-2017 + + 4.0.0 + + apm-rocketmq-4.x-plugin + rocketMQ-4.x-plugin + + + UTF-8 + + + + + org.apache.rocketmq + rocketmq-client + 4.1.0-incubating + provided + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + + + org.apache.maven.plugins + maven-source-plugin + + + + attach-sources + + jar + + + + + + + diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java new file mode 100644 index 000000000..04af5c96a --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java @@ -0,0 +1,77 @@ +/* + * 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.apache.rocketmq.common.message; + +import java.lang.reflect.Method; +import java.util.List; +import org.skywalking.apm.agent.core.context.CarrierItem; +import org.skywalking.apm.agent.core.context.ContextCarrier; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.context.trace.SpanLayer; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.network.trace.component.ComponentsDefine; + +/** + * {@link AbstractMessageConsumeInterceptor} create entry span when the consumeMessage in the {@link + * org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently} and {@link + * org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly} class. + * + * @author zhangxin + */ +public abstract class AbstractMessageConsumeInterceptor implements InstanceMethodsAroundInterceptor { + + public static final String COMSUMER_OPERATION_NAME_PREFIX = "RocketMQ/"; + + @Override + public final void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + List msgs = (List)allArguments[0]; + + ContextCarrier contextCarrier = getContextCarrierFromMessage(msgs.get(0)); + AbstractSpan span = ContextManager.createEntrySpan(COMSUMER_OPERATION_NAME_PREFIX + msgs.get(0).getTopic() + "/Consumer", contextCarrier); + + span.setComponent(ComponentsDefine.ROCKET_MQ); + span.setLayer(SpanLayer.MQ); + for (int i = 1; i < msgs.size(); i++) { + ContextManager.extract(getContextCarrierFromMessage(msgs.get(i))); + } + + } + + @Override public final void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + ContextManager.activeSpan().errorOccurred().log(t); + } + + private ContextCarrier getContextCarrierFromMessage(MessageExt message) { + ContextCarrier contextCarrier = new ContextCarrier(); + + CarrierItem next = contextCarrier.items(); + while (next.hasNext()) { + next = next.next(); + next.setHeadValue(message.getUserProperty(next.getHeadKey())); + } + + return contextCarrier; + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java new file mode 100644 index 000000000..fb5725228 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java @@ -0,0 +1,50 @@ +/* + * 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.apache.rocketmq.common.message; + +import java.lang.reflect.Method; +import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.tag.Tags; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; + +/** + * {@link MessageConcurrentlyConsumeInterceptor} set the process status after the {@link + * org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently#consumeMessage(java.util.List, + * org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext)} method execute. + * + * @author zhang xin + */ +public class MessageConcurrentlyConsumeInterceptor extends AbstractMessageConsumeInterceptor { + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + ConsumeConcurrentlyStatus status = (ConsumeConcurrentlyStatus)ret; + if (status == ConsumeConcurrentlyStatus.RECONSUME_LATER) { + AbstractSpan activeSpan = ContextManager.activeSpan(); + activeSpan.errorOccurred(); + Tags.STATUS_CODE.set(activeSpan, status.name()); + } + ContextManager.stopSpan(); + return ret; + } +} + diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java new file mode 100644 index 000000000..dcf94717e --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java @@ -0,0 +1,51 @@ +/* + * 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.apache.rocketmq.common.message; + +import java.lang.reflect.Method; +import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.tag.Tags; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; + +/** + * {@link MessageOrderlyConsumeInterceptor} set the process status after the {@link + * org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly#consumeMessage(java.util.List, + * org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext)} method execute. + * + * @author zhang xin + */ +public class MessageOrderlyConsumeInterceptor extends AbstractMessageConsumeInterceptor { + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + + ConsumeOrderlyStatus status = (ConsumeOrderlyStatus)ret; + if (status == ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT) { + AbstractSpan activeSpan = ContextManager.activeSpan(); + activeSpan.errorOccurred(); + Tags.STATUS_CODE.set(activeSpan, status.name()); + } + ContextManager.stopSpan(); + return ret; + } + +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java new file mode 100644 index 000000000..b85165856 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java @@ -0,0 +1,100 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.lang.reflect.Method; +import org.apache.rocketmq.client.impl.CommunicationMode; +import org.apache.rocketmq.common.message.Message; +import org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader; +import org.skywalking.apm.agent.core.context.CarrierItem; +import org.skywalking.apm.agent.core.context.ContextCarrier; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.context.trace.SpanLayer; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.network.trace.component.ComponentsDefine; +import org.skywalking.apm.plugin.rocketMQ.v4.define.SendCallBackEnhanceInfo; +import org.skywalking.apm.util.StringUtil; + +import static org.apache.rocketmq.common.message.MessageDecoder.NAME_VALUE_SEPARATOR; +import static org.apache.rocketmq.common.message.MessageDecoder.PROPERTY_SEPARATOR; + +/** + * {@link MessageSendInterceptor} create exit span when the method {@link org.apache.rocketmq.client.impl.MQClientAPIImpl#sendMessage(String, + * String, Message, org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader, long, + * org.apache.rocketmq.client.impl.CommunicationMode, org.apache.rocketmq.client.producer.SendCallback, + * org.apache.rocketmq.client.impl.producer.TopicPublishInfo, org.apache.rocketmq.client.impl.factory.MQClientInstance, + * int, org.apache.rocketmq.client.hook.SendMessageContext, org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl)} + * execute. + * + * @author zhang xin + */ +public class MessageSendInterceptor implements InstanceMethodsAroundInterceptor { + + public static final String ASYNC_SEND_OPERATION_NAME_PREFIX = "RocketMQ/"; + + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + Message message = (Message)allArguments[2]; + ContextCarrier contextCarrier = new ContextCarrier(); + AbstractSpan span = ContextManager.createExitSpan(buildOperationName(message.getTopic()), contextCarrier, (String)allArguments[0]); + span.setComponent(ComponentsDefine.ROCKET_MQ); + span.setLayer(SpanLayer.MQ); + span.tag("brokerName", (String)allArguments[1]); + span.tag("tags", message.getTags()); + span.tag("communication.mode", ((CommunicationMode)allArguments[5]).name()); + + SendMessageRequestHeader requestHeader = (SendMessageRequestHeader)allArguments[3]; + StringBuilder properties = new StringBuilder(requestHeader.getProperties()); + CarrierItem next = contextCarrier.items(); + while (next.hasNext()) { + next = next.next(); + if (!StringUtil.isEmpty(next.getHeadValue())) { + properties.append(next.getHeadKey()); + properties.append(NAME_VALUE_SEPARATOR); + properties.append(next.getHeadValue()); + properties.append(PROPERTY_SEPARATOR); + } + } + requestHeader.setProperties(properties.toString()); + + if (allArguments[6] != null) { + ((EnhancedInstance)allArguments[6]).setSkyWalkingDynamicField(new SendCallBackEnhanceInfo(message.getTopic(), ContextManager.capture())); + } + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + ContextManager.stopSpan(); + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + ContextManager.activeSpan().errorOccurred().log(t); + } + + private String buildOperationName(String topicName) { + return ASYNC_SEND_OPERATION_NAME_PREFIX + topicName + "/Producer"; + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptor.java new file mode 100644 index 000000000..067303538 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptor.java @@ -0,0 +1,61 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.network.trace.component.ComponentsDefine; +import org.skywalking.apm.plugin.rocketMQ.v4.define.SendCallBackEnhanceInfo; + +/** + * {@link OnExceptionInterceptor} create local span when the method {@link org.apache.rocketmq.client.producer.SendCallback#onException(Throwable)} + * execute. + * + * @author zhang xin + */ +public class OnExceptionInterceptor implements InstanceMethodsAroundInterceptor { + + public static final String CALLBACK_OPERATION_NAME_PREFIX = "RocketMQ/"; + + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + SendCallBackEnhanceInfo enhanceInfo = (SendCallBackEnhanceInfo)objInst.getSkyWalkingDynamicField(); + AbstractSpan activeSpan = ContextManager.createLocalSpan(CALLBACK_OPERATION_NAME_PREFIX + enhanceInfo.getTopicId() + "/Producer/Callback"); + activeSpan.setComponent(ComponentsDefine.ROCKET_MQ); + activeSpan.errorOccurred().log((Throwable)allArguments[0]); + ContextManager.continued(enhanceInfo.getContextSnapshot()); + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + ContextManager.stopSpan(); + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + ContextManager.activeSpan().log(t); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptor.java new file mode 100644 index 000000000..cf927d46b --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptor.java @@ -0,0 +1,68 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.lang.reflect.Method; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.client.producer.SendStatus; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.tag.Tags; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.network.trace.component.ComponentsDefine; +import org.skywalking.apm.plugin.rocketMQ.v4.define.SendCallBackEnhanceInfo; + +/** + * {@link OnSuccessInterceptor} create local span when the method {@link org.apache.rocketmq.client.producer.SendCallback#onSuccess(SendResult)} + * execute. + * + * @author zhang xin + */ +public class OnSuccessInterceptor implements InstanceMethodsAroundInterceptor { + + public static final String CALLBACK_OPERATION_NAME_PREFIX = "RocketMQ/"; + + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + SendCallBackEnhanceInfo enhanceInfo = (SendCallBackEnhanceInfo)objInst.getSkyWalkingDynamicField(); + AbstractSpan activeSpan = ContextManager.createLocalSpan(CALLBACK_OPERATION_NAME_PREFIX + enhanceInfo.getTopicId() + "/Producer/Callback"); + activeSpan.setComponent(ComponentsDefine.ROCKET_MQ); + SendStatus sendStatus = ((SendResult)allArguments[0]).getSendStatus(); + if (sendStatus != SendStatus.SEND_OK) { + activeSpan.errorOccurred(); + Tags.STATUS_CODE.set(activeSpan, sendStatus.name()); + } + ContextManager.continued(enhanceInfo.getContextSnapshot()); + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + ContextManager.stopSpan(); + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + ContextManager.activeSpan().errorOccurred().log(t); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java new file mode 100644 index 000000000..225471878 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java @@ -0,0 +1,68 @@ +/* + * 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.plugin.rocketMQ.v4.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static org.skywalking.apm.agent.core.plugin.match.HierarchyMatch.byHierarchyMatch; + +/** + * {@link ConsumeMessageConcurrentlyInstrumentation} intercepts the {@link org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently#consumeMessage(java.util.List, + * org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext)} method by using {@link + * org.apache.rocketmq.common.message.MessageConcurrentlyConsumeInterceptor}. + * + * @author zhang xin + */ +public class ConsumeMessageConcurrentlyInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + private static final String ENHANCE_CLASS = "org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently"; + private static final String CONSUMER_MESSAGE_METHOD = "consumeMessage"; + private static final String INTERCEPTOR_CLASS = "org.apache.rocketmq.common.message.MessageConcurrentlyConsumeInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(CONSUMER_MESSAGE_METHOD); + } + + @Override public String getMethodsInterceptor() { + return INTERCEPTOR_CLASS; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byHierarchyMatch(new String[] {ENHANCE_CLASS}); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java new file mode 100644 index 000000000..78984cd66 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java @@ -0,0 +1,68 @@ +/* + * 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.plugin.rocketMQ.v4.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static org.skywalking.apm.agent.core.plugin.match.HierarchyMatch.byHierarchyMatch; + +/** + * {@link ConsumeMessageOrderlyInstrumentation} intercepts the {@link org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly#consumeMessage(java.util.List, + * org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext)} method by using {@link + * org.apache.rocketmq.common.message.MessageConcurrentlyConsumeInterceptor}. + * + * @author zhang xin + */ +public class ConsumeMessageOrderlyInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + private static final String ENHANCE_CLASS = "org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly"; + private static final String ENHANCE_METHOD = "consumeMessage"; + private static final String INTERCEPTOR_CLASS = "org.apache.rocketmq.common.message.MessageOrderlyConsumeInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(ENHANCE_METHOD); + } + + @Override public String getMethodsInterceptor() { + return INTERCEPTOR_CLASS; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byHierarchyMatch(new String[] {ENHANCE_CLASS}); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java new file mode 100644 index 000000000..582e31134 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java @@ -0,0 +1,73 @@ +/* + * 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.plugin.rocketMQ.v4.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; +import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName; + +/** + * {@link MQClientAPIImplInstrumentation} intercepts the {@link org.apache.rocketmq.client.impl.MQClientAPIImpl#sendMessage(String, + * String, org.apache.rocketmq.common.message.Message, org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader, + * long, org.apache.rocketmq.client.impl.CommunicationMode, org.apache.rocketmq.client.producer.SendCallback, + * org.apache.rocketmq.client.impl.producer.TopicPublishInfo, org.apache.rocketmq.client.impl.factory.MQClientInstance, + * int, org.apache.rocketmq.client.hook.SendMessageContext, org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl)} + * method by using {@link org.skywalking.apm.plugin.rocketMQ.v4.MessageSendInterceptor}. + * + * @author zhang xin + */ +public class MQClientAPIImplInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + + private static final String ENHANCE_CLASS = "org.apache.rocketmq.client.impl.MQClientAPIImpl"; + private static final String SEND_MESSAGE_METHOD_NAME = "sendMessage"; + private static final String ASYNC_METHOD_INTERCEPTOR = "org.skywalking.apm.plugin.rocketMQ.v4.MessageSendInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(SEND_MESSAGE_METHOD_NAME).and(takesArguments(12)); + } + + @Override public String getMethodsInterceptor() { + return ASYNC_METHOD_INTERCEPTOR; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byName(ENHANCE_CLASS); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallBackEnhanceInfo.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallBackEnhanceInfo.java new file mode 100644 index 000000000..c5fb21728 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallBackEnhanceInfo.java @@ -0,0 +1,44 @@ +/* + * 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.plugin.rocketMQ.v4.define; + +import org.skywalking.apm.agent.core.context.ContextSnapshot; + +/** + * {@link SendCallBackEnhanceInfo} saves the topic Id and {@link ContextSnapshot} instance for trace. + * + * @author zhang xin + */ +public class SendCallBackEnhanceInfo { + private String topicId; + private ContextSnapshot contextSnapshot; + + public SendCallBackEnhanceInfo(String topicId, ContextSnapshot contextSnapshot) { + this.topicId = topicId; + this.contextSnapshot = contextSnapshot; + } + + public String getTopicId() { + return topicId; + } + + public ContextSnapshot getContextSnapshot() { + return contextSnapshot; + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallbackInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallbackInstrumentation.java new file mode 100644 index 000000000..d63c0a3d7 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/SendCallbackInstrumentation.java @@ -0,0 +1,87 @@ +/* + * 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.plugin.rocketMQ.v4.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.apache.rocketmq.client.producer.SendResult; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static org.skywalking.apm.agent.core.plugin.bytebuddy.ArgumentTypeNameMatch.takesArgumentWithType; +import static org.skywalking.apm.agent.core.plugin.match.HierarchyMatch.byHierarchyMatch; + +/** + * {@link SendCallbackInstrumentation} intercepts {@link org.apache.rocketmq.client.producer.SendCallback#onSuccess(SendResult)} + * method by using {@link org.skywalking.apm.plugin.rocketMQ.v4.OnSuccessInterceptor} and also intercepts {@link + * org.apache.rocketmq.client.producer.SendCallback#onException(Throwable)} by using {@link + * org.skywalking.apm.plugin.rocketMQ.v4.OnExceptionInterceptor}. + * + * @author zhang xin + */ +public class SendCallbackInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + + private static final String ENHANCE_CLASS = "org.apache.rocketmq.client.producer.SendCallback"; + private static final String ON_SUCCESS_ENHANCE_METHOD = "onSuccess"; + private static final String ON_SUCCESS_INTERCEPTOR = "org.skywalking.apm.plugin.rocketMQ.v4.OnSuccessInterceptor"; + private static final String ON_EXCEPTION_METHOD = "onException"; + private static final String ON_EXCEPTION_INTERCEPTOR = "org.skywalking.apm.plugin.rocketMQ.v4.OnExceptionInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(ON_SUCCESS_ENHANCE_METHOD).and(takesArgumentWithType(0, "org.apache.rocketmq.client.producer.SendResult")); + } + + @Override public String getMethodsInterceptor() { + return ON_SUCCESS_INTERCEPTOR; + } + + @Override public boolean isOverrideArgs() { + return false; + } + }, + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(ON_EXCEPTION_METHOD).and(takesArgumentWithType(0, "java.lang.Throwable")); + } + + @Override public String getMethodsInterceptor() { + return ON_EXCEPTION_INTERCEPTOR; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byHierarchyMatch(new String[] {ENHANCE_CLASS}); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/resources/skywalking-plugin.def new file mode 100644 index 000000000..1accc2bff --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/resources/skywalking-plugin.def @@ -0,0 +1,4 @@ +rocketMQ-4.x=org.skywalking.apm.plugin.rocketMQ.v4.define.ConsumeMessageConcurrentlyInstrumentation +rocketMQ-4.x=org.skywalking.apm.plugin.rocketMQ.v4.define.ConsumeMessageOrderlyInstrumentation +rocketMQ-4.x=org.skywalking.apm.plugin.rocketMQ.v4.define.MQClientAPIImplInstrumentation +rocketMQ-4.x=org.skywalking.apm.plugin.rocketMQ.v4.define.SendCallbackInstrumentation diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java new file mode 100644 index 000000000..8bc0a0a72 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java @@ -0,0 +1,126 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.util.List; +import org.apache.rocketmq.client.impl.CommunicationMode; +import org.apache.rocketmq.common.message.Message; +import org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; +import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan; +import org.skywalking.apm.agent.core.context.trace.SpanLayer; +import org.skywalking.apm.agent.core.context.trace.TraceSegment; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.test.helper.SegmentHelper; +import org.skywalking.apm.agent.test.tools.AgentServiceRule; +import org.skywalking.apm.agent.test.tools.SegmentStorage; +import org.skywalking.apm.agent.test.tools.SegmentStoragePoint; +import org.skywalking.apm.agent.test.tools.SpanAssert; +import org.skywalking.apm.agent.test.tools.TracingSegmentRunner; +import org.skywalking.apm.network.trace.component.ComponentsDefine; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.powermock.api.mockito.PowerMockito.when; + +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(TracingSegmentRunner.class) +public class MessageSendInterceptorTest { + + private MessageSendInterceptor messageSendInterceptor; + + @SegmentStoragePoint + private SegmentStorage segmentStorage; + + @Rule + public AgentServiceRule serviceRule = new AgentServiceRule(); + + private Object[] arguments; + + private Object[] argumentsWithoutCallback; + + @Mock + private Message message; + + @Mock + private SendMessageRequestHeader messageRequestHeader; + + @Mock + private EnhancedInstance callBack; + + @Before + public void setUp() { + messageSendInterceptor = new MessageSendInterceptor(); + + arguments = new Object[] {"127.0.0.1", "test", message, messageRequestHeader, null, CommunicationMode.ASYNC, callBack}; + argumentsWithoutCallback = new Object[] {"127.0.0.1", "test", message, messageRequestHeader, null, CommunicationMode.ASYNC, null}; + when(messageRequestHeader.getProperties()).thenReturn(""); + when(message.getTags()).thenReturn("TagA"); + } + + @Test + public void testSendMessage() throws Throwable { + messageSendInterceptor.beforeMethod(null, null, arguments, null, null); + messageSendInterceptor.afterMethod(null, null, arguments, null, null); + + assertThat(segmentStorage.getTraceSegments().size(), is(1)); + TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(traceSegment); + assertThat(spans.size(), is(1)); + + AbstractTracingSpan mqSpan = spans.get(0); + + SpanAssert.assertLayer(mqSpan, SpanLayer.MQ); + SpanAssert.assertComponent(mqSpan, ComponentsDefine.ROCKET_MQ); + SpanAssert.assertTag(mqSpan, 0, "test"); + SpanAssert.assertTag(mqSpan, 1, "TagA"); + verify(messageRequestHeader, times(1)).setProperties(anyString()); + verify(callBack, times(1)).setSkyWalkingDynamicField(Matchers.any()); + } + + @Test + public void testSendMessageWithoutCallBack() throws Throwable { + messageSendInterceptor.beforeMethod(null, null, argumentsWithoutCallback, null, null); + messageSendInterceptor.afterMethod(null, null, argumentsWithoutCallback, null, null); + + assertThat(segmentStorage.getTraceSegments().size(), is(1)); + TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(traceSegment); + assertThat(spans.size(), is(1)); + + AbstractTracingSpan mqSpan = spans.get(0); + + SpanAssert.assertLayer(mqSpan, SpanLayer.MQ); + SpanAssert.assertComponent(mqSpan, ComponentsDefine.ROCKET_MQ); + SpanAssert.assertTag(mqSpan, 0, "test"); + SpanAssert.assertTag(mqSpan, 1, "TagA"); + verify(messageRequestHeader, times(1)).setProperties(anyString()); + } + +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptorTest.java new file mode 100644 index 000000000..bc749493a --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnExceptionInterceptorTest.java @@ -0,0 +1,87 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.util.List; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; +import org.skywalking.apm.agent.core.context.ContextSnapshot; +import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan; +import org.skywalking.apm.agent.core.context.trace.TraceSegment; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.test.helper.SegmentHelper; +import org.skywalking.apm.agent.test.helper.SpanHelper; +import org.skywalking.apm.agent.test.tools.AgentServiceRule; +import org.skywalking.apm.agent.test.tools.SegmentStorage; +import org.skywalking.apm.agent.test.tools.SegmentStoragePoint; +import org.skywalking.apm.agent.test.tools.SpanAssert; +import org.skywalking.apm.agent.test.tools.TracingSegmentRunner; +import org.skywalking.apm.plugin.rocketMQ.v4.define.SendCallBackEnhanceInfo; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.powermock.api.mockito.PowerMockito.when; + +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(TracingSegmentRunner.class) +public class OnExceptionInterceptorTest { + + private OnExceptionInterceptor exceptionInterceptor; + + @SegmentStoragePoint + private SegmentStorage segmentStorage; + + @Rule + public AgentServiceRule serviceRule = new AgentServiceRule(); + + @Mock + private ContextSnapshot contextSnapshot; + private SendCallBackEnhanceInfo enhanceInfo; + + @Mock + private EnhancedInstance enhancedInstance; + + @Before + public void setUp() { + exceptionInterceptor = new OnExceptionInterceptor(); + + enhanceInfo = new SendCallBackEnhanceInfo("test", contextSnapshot); + when(enhancedInstance.getSkyWalkingDynamicField()).thenReturn(enhanceInfo); + } + + @Test + public void testOnException() throws Throwable { + exceptionInterceptor.beforeMethod(enhancedInstance, null, new Object[] {new RuntimeException()}, null, null); + exceptionInterceptor.afterMethod(enhancedInstance, null, new Object[] {new RuntimeException()}, null, null); + + assertThat(segmentStorage.getTraceSegments().size(), is(1)); + TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(traceSegment); + assertThat(spans.size(), is(1)); + + AbstractTracingSpan exceptionSpan = spans.get(0); + SpanAssert.assertException(SpanHelper.getLogs(exceptionSpan).get(0), RuntimeException.class); + SpanAssert.assertOccurException(exceptionSpan, true); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptorTest.java new file mode 100644 index 000000000..5fcbb0cf2 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/OnSuccessInterceptorTest.java @@ -0,0 +1,113 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.util.List; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.client.producer.SendStatus; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; +import org.skywalking.apm.agent.core.context.ContextSnapshot; +import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan; +import org.skywalking.apm.agent.core.context.trace.TraceSegment; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.test.helper.SegmentHelper; +import org.skywalking.apm.agent.test.tools.AgentServiceRule; +import org.skywalking.apm.agent.test.tools.SegmentStorage; +import org.skywalking.apm.agent.test.tools.SegmentStoragePoint; +import org.skywalking.apm.agent.test.tools.SpanAssert; +import org.skywalking.apm.agent.test.tools.TracingSegmentRunner; +import org.skywalking.apm.network.trace.component.ComponentsDefine; +import org.skywalking.apm.plugin.rocketMQ.v4.define.SendCallBackEnhanceInfo; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.powermock.api.mockito.PowerMockito.when; + +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(TracingSegmentRunner.class) +public class OnSuccessInterceptorTest { + + private OnSuccessInterceptor successInterceptor; + + @SegmentStoragePoint + private SegmentStorage segmentStorage; + + @Rule + public AgentServiceRule serviceRule = new AgentServiceRule(); + + @Mock + private ContextSnapshot contextSnapshot; + @Mock + private SendResult sendResult; + + private SendCallBackEnhanceInfo enhanceInfo; + + @Mock + private EnhancedInstance enhancedInstance; + + @Before + public void setUp() { + successInterceptor = new OnSuccessInterceptor(); + + enhanceInfo = new SendCallBackEnhanceInfo("test", contextSnapshot); + when(enhancedInstance.getSkyWalkingDynamicField()).thenReturn(enhanceInfo); + when(sendResult.getSendStatus()).thenReturn(SendStatus.SEND_OK); + } + + @Test + public void testOnSuccess() throws Throwable { + successInterceptor.beforeMethod(enhancedInstance, null, new Object[] {sendResult}, null, null); + successInterceptor.afterMethod(enhancedInstance, null, new Object[] {sendResult}, null, null); + + assertThat(segmentStorage.getTraceSegments().size(), is(1)); + TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(traceSegment); + assertThat(spans.size(), is(1)); + + AbstractTracingSpan successSpan = spans.get(0); + + SpanAssert.assertComponent(successSpan, ComponentsDefine.ROCKET_MQ); + + } + + @Test + public void testOnSuccessWithErrorStatus() throws Throwable { + when(sendResult.getSendStatus()).thenReturn(SendStatus.FLUSH_SLAVE_TIMEOUT); + successInterceptor.beforeMethod(enhancedInstance, null, new Object[] {sendResult}, null, null); + successInterceptor.afterMethod(enhancedInstance, null, new Object[] {sendResult}, null, null); + + assertThat(segmentStorage.getTraceSegments().size(), is(1)); + TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(traceSegment); + assertThat(spans.size(), is(1)); + + AbstractTracingSpan successSpan = spans.get(0); + + SpanAssert.assertComponent(successSpan, ComponentsDefine.ROCKET_MQ); + SpanAssert.assertOccurException(successSpan, true); + + } + +} From c15d1a5676816ab600156138c37de11dc0cf3284 Mon Sep 17 00:00:00 2001 From: gaohongtao Date: Mon, 20 Nov 2017 10:18:37 +0800 Subject: [PATCH 02/20] Fix #603 Elastic-Job plugin --- .../trace/component/ComponentsDefine.java | 5 +- .../elastic-job-2.x-plugin/pom.xml | 54 +++++++++ .../plugin/esjob/JobExecutorInterceptor.java | 65 +++++++++++ .../define/JobExecutorInstrumentation.java | 68 +++++++++++ .../src/main/resources/skywalking-plugin.def | 1 + .../esjob/JobExecutorInterceptorTest.java | 107 ++++++++++++++++++ apm-sniffer/apm-sdk-plugin/pom.xml | 1 + 7 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml create mode 100644 apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/define/JobExecutorInstrumentation.java create mode 100644 apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/resources/skywalking-plugin.def create mode 100644 apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java 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 index 0151346e8..8d411d847 100644 --- 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 @@ -71,6 +71,8 @@ public class ComponentsDefine { public static final OfficialComponent GRPC = new OfficialComponent(23, "GRPC"); + public static final OfficialComponent ELASTIC_JOB = new OfficialComponent(24, "ElasticJob"); + private static ComponentsDefine instance = new ComponentsDefine(); private String[] components; @@ -80,7 +82,7 @@ public class ComponentsDefine { } public ComponentsDefine() { - components = new String[24]; + components = new String[25]; addComponent(TOMCAT); addComponent(HTTPCLIENT); addComponent(DUBBO); @@ -104,6 +106,7 @@ public class ComponentsDefine { addComponent(SHARDING_JDBC); addComponent(POSTGRESQL); addComponent(GRPC); + addComponent(ELASTIC_JOB); } private void addComponent(OfficialComponent component) { diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml new file mode 100644 index 000000000..ae6e051b4 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml @@ -0,0 +1,54 @@ + + + + apm-sdk-plugin + org.skywalking + 3.2.4-2017 + + 4.0.0 + + apm-elastic-job-2.x-plugin + jar + + elastic-job-2.x-plugin + http://maven.apache.org + + + UTF-8 + + + + + com.dangdang + elastic-job-common-core + [2.0.0,3.0.0) + provided + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + + + org.apache.maven.plugins + maven-source-plugin + + + + attach-sources + + jar + + + + + + + + \ No newline at end of file diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptor.java b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptor.java new file mode 100644 index 000000000..735dbd56d --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptor.java @@ -0,0 +1,65 @@ +/* + * 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.plugin.esjob; + +import com.dangdang.ddframe.job.api.ShardingContext; +import com.dangdang.ddframe.job.executor.ShardingContexts; +import com.google.common.base.Strings; +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.network.trace.component.ComponentsDefine; + +/** + * {@link JobExecutorInterceptor} enhances {@link com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor#process(ShardingContext)} + * ,creating a local span that records job execution. + * + * @author gaohongtao + */ +public class JobExecutorInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + ShardingContexts shardingContexts = (ShardingContexts)allArguments[0]; + Integer item = (Integer)allArguments[1]; + ShardingContext shardingContext = new ShardingContext(shardingContexts, item); + String operateName = shardingContext.getJobName(); + if (!Strings.isNullOrEmpty(shardingContext.getShardingParameter())) { + operateName += "-" + shardingContext.getShardingParameter(); + } + AbstractSpan span = ContextManager.createLocalSpan(operateName); + span.setComponent(ComponentsDefine.ELASTIC_JOB); + span.tag("sharding_context", shardingContext.toString()); + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + ContextManager.stopSpan(); + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + ContextManager.activeSpan().errorOccurred().log(t); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/define/JobExecutorInstrumentation.java b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/define/JobExecutorInstrumentation.java new file mode 100644 index 000000000..eb29a9e3e --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/java/org/skywalking/apm/plugin/esjob/define/JobExecutorInstrumentation.java @@ -0,0 +1,68 @@ +/* + * 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.plugin.esjob.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static org.skywalking.apm.agent.core.plugin.bytebuddy.ArgumentTypeNameMatch.takesArgumentWithType; +import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName; + +/** + * {@link JobExecutorInstrumentation} presents that skywalking intercepts {@link com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor}. + * + * @author gaohongtao + */ +public class JobExecutorInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + + private static final String ENHANCE_CLASS = "com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor"; + + private static final String JOB_EXECUTOR_INTERCEPTOR_CLASS = "org.skywalking.apm.plugin.esjob.JobExecutorInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[]{ + new InstanceMethodsInterceptPoint() { + + @Override public ElementMatcher getMethodsMatcher() { + return takesArgumentWithType(2, "com.dangdang.ddframe.job.event.type.JobExecutionEvent"); + } + + @Override public String getMethodsInterceptor() { + return JOB_EXECUTOR_INTERCEPTOR_CLASS; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byName(ENHANCE_CLASS); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/resources/skywalking-plugin.def new file mode 100644 index 000000000..7e8a4d707 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/main/resources/skywalking-plugin.def @@ -0,0 +1 @@ +elastic-job-2.x=org.skywalking.apm.plugin.esjob.define.JobExecutorInstrumentation \ No newline at end of file diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java new file mode 100644 index 000000000..25d955639 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java @@ -0,0 +1,107 @@ +/* + * 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.plugin.esjob; + +import com.dangdang.ddframe.job.executor.ShardingContexts; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; +import org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan; +import org.skywalking.apm.agent.core.context.trace.TraceSegment; +import org.skywalking.apm.agent.test.helper.SegmentHelper; +import org.skywalking.apm.agent.test.tools.AgentServiceRule; +import org.skywalking.apm.agent.test.tools.SegmentStorage; +import org.skywalking.apm.agent.test.tools.SegmentStoragePoint; +import org.skywalking.apm.agent.test.tools.TracingSegmentRunner; + +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; + +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(TracingSegmentRunner.class) +public class JobExecutorInterceptorTest { + + @SegmentStoragePoint + private SegmentStorage segmentStorage; + + @Rule + public AgentServiceRule serviceRule = new AgentServiceRule(); + + private JobExecutorInterceptor jobExecutorInterceptor; + + @Before + public void setUp() throws SQLException { + jobExecutorInterceptor = new JobExecutorInterceptor(); + } + + @Test + public void assertSuccess() throws Throwable { + jobExecutorInterceptor.beforeMethod(null, null, new Object[]{mockShardingContext("fooJob", 1), 1}, null, null); + jobExecutorInterceptor.afterMethod(null, null, null, null, null); + TraceSegment segment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(segment); + assertNotNull(spans); + assertThat(spans.size(), is(1)); + assertThat(spans.get(0).transform().getOperationName(), is("fooJob-test")); + assertThat(spans.get(0).transform().getComponentId(), is(23)); + assertThat(spans.get(0).transform().getTags(0).getKey(), is("sharding_context")); + assertThat(spans.get(0).transform().getTags(0).getValue(), is("ShardingContext(jobName=fooJob, taskId=fooJob1, shardingTotalCount=2, jobParameter=, shardingItem=1, shardingParameter=test)")); + } + + @Test + public void assertSuccessWithoutSharding() throws Throwable { + jobExecutorInterceptor.beforeMethod(null, null, new Object[]{mockShardingContext("fooJob", 0), 0}, null, null); + jobExecutorInterceptor.afterMethod(null, null, null, null, null); + TraceSegment segment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(segment); + assertNotNull(spans); + assertThat(spans.size(), is(1)); + assertThat(spans.get(0).transform().getOperationName(), is("fooJob")); + assertThat(spans.get(0).transform().getTags(0).getValue(), is("ShardingContext(jobName=fooJob, taskId=fooJob0, shardingTotalCount=1, jobParameter=, shardingItem=0, shardingParameter=null)")); + } + + @Test + public void assertError() throws Throwable { + jobExecutorInterceptor.beforeMethod(null, null, new Object[]{mockShardingContext("fooJob", 0), 0}, null, null); + jobExecutorInterceptor.handleMethodException(null, null, null, null, new Exception("fooError")); + jobExecutorInterceptor.afterMethod(null, null, null, null, null); + TraceSegment segment = segmentStorage.getTraceSegments().get(0); + List spans = SegmentHelper.getSpans(segment); + assertNotNull(spans); + assertThat(spans.size(), is(1)); + assertThat(spans.get(0).transform().getIsError(), is(true)); + assertThat(spans.get(0).transform().getLogs(0).getDataList().size(), is(4)); + } + + private ShardingContexts mockShardingContext(String jobName, int shardingItem) { + Map shardingMap = new HashMap(1); + if (shardingItem >= 1) { + shardingMap.put(shardingItem, "test"); + } + return new ShardingContexts(jobName + shardingItem, jobName, shardingItem + 1, "", shardingMap); + } +} \ No newline at end of file diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml index c513de7cd..b4587d7a1 100644 --- a/apm-sniffer/apm-sdk-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/pom.xml @@ -52,6 +52,7 @@ h2-1.x-plugin postgresql-8.x-plugin oracle-10.x-plugin + elastic-job-2.x-plugin pom From c0c21f9e26b6977a119e3bfe5f75916fd67dd2db Mon Sep 17 00:00:00 2001 From: gaohongtao Date: Mon, 20 Nov 2017 10:26:15 +0800 Subject: [PATCH 03/20] Fix version number --- apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml index ae6e051b4..efcc30e36 100644 --- a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml @@ -5,7 +5,7 @@ apm-sdk-plugin org.skywalking - 3.2.4-2017 + 3.2.5-2017 4.0.0 From c87039a828fc97d5e0e0a4f15582bb901c90c11a Mon Sep 17 00:00:00 2001 From: gaohongtao Date: Mon, 20 Nov 2017 10:43:37 +0800 Subject: [PATCH 04/20] Fix test case --- .../skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java index 25d955639..6e946a709 100644 --- a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/src/test/java/org/skywalking/apm/plugin/esjob/JobExecutorInterceptorTest.java @@ -67,7 +67,7 @@ public class JobExecutorInterceptorTest { assertNotNull(spans); assertThat(spans.size(), is(1)); assertThat(spans.get(0).transform().getOperationName(), is("fooJob-test")); - assertThat(spans.get(0).transform().getComponentId(), is(23)); + assertThat(spans.get(0).transform().getComponentId(), is(24)); assertThat(spans.get(0).transform().getTags(0).getKey(), is("sharding_context")); assertThat(spans.get(0).transform().getTags(0).getValue(), is("ShardingContext(jobName=fooJob, taskId=fooJob1, shardingTotalCount=2, jobParameter=, shardingItem=1, shardingParameter=test)")); } From 30ba5853e035852d6f19b2c3ece402f363ecb198 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Wed, 29 Nov 2017 19:17:05 +0800 Subject: [PATCH 05/20] support the 3.0 and 3.1 version of spring mvc framework --- .../v3/HandlerMethodInvokerInterceptor.java | 53 +++++++++++++++ .../HandlerMethodInvokerInstrumentation.java | 66 +++++++++++++++++++ .../src/main/resources/skywalking-plugin.def | 1 + 3 files changed, 120 insertions(+) create mode 100644 apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/HandlerMethodInvokerInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/define/HandlerMethodInvokerInstrumentation.java diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/HandlerMethodInvokerInterceptor.java b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/HandlerMethodInvokerInterceptor.java new file mode 100644 index 000000000..52dd64a32 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/HandlerMethodInvokerInterceptor.java @@ -0,0 +1,53 @@ +/* + * 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.plugin.spring.mvc.v3; + +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.springframework.web.context.request.NativeWebRequest; + +/** + * {@link HandlerMethodInvokerInterceptor} pass the {@link NativeWebRequest} object into the {@link + * org.springframework.stereotype.Controller} object. + * + * @author zhangxin + */ +public class HandlerMethodInvokerInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + Object handler = allArguments[1]; + if (handler instanceof EnhancedInstance) { + ((EnhanceRequireObjectCache)((EnhancedInstance)handler).getSkyWalkingDynamicField()).setNativeWebRequest((NativeWebRequest)allArguments[2]); + } + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + + } +} diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/define/HandlerMethodInvokerInstrumentation.java b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/define/HandlerMethodInvokerInstrumentation.java new file mode 100644 index 000000000..b708c4c6d --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/java/org/skywalking/apm/plugin/spring/mvc/v3/define/HandlerMethodInvokerInstrumentation.java @@ -0,0 +1,66 @@ +/* + * 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.plugin.spring.mvc.v3.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName; + +/** + * {@link HandlerMethodInvokerInstrumentation} intercept the invokeHandlerMethod method in the + * org.springframework.web.bind.annotation.support.HandlerMethodInvoker class. + * + * @author zhangxin + */ +public class HandlerMethodInvokerInstrumentation extends AbstractSpring3Instrumentation { + private static final String ENHANCE_CLASS = "org.springframework.web.bind.annotation.support.HandlerMethodInvoker"; + private static final String ENHANCE_METHOD = "invokeHandlerMethod"; + private static final String INTERCEPTOR_CLASS = "org.skywalking.apm.plugin.spring.mvc.v3.HandlerMethodInvokerInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(ENHANCE_METHOD); + } + + @Override public String getMethodsInterceptor() { + return INTERCEPTOR_CLASS; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byName(ENHANCE_CLASS); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/resources/skywalking-plugin.def index 86b7b7658..8f4010b67 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/src/main/resources/skywalking-plugin.def @@ -1,3 +1,4 @@ spring-mvc-annotation-3.x=org.skywalking.apm.plugin.spring.mvc.v3.define.ControllerInstrumentation spring-mvc-annotation-3.x=org.skywalking.apm.plugin.spring.mvc.v3.define.HandlerMethodInstrumentation spring-mvc-annotation-3.x=org.skywalking.apm.plugin.spring.mvc.v3.define.InvocableHandlerInstrumentation +spring-mvc-annotation-3.x=org.skywalking.apm.plugin.spring.mvc.v3.define.HandlerMethodInvokerInstrumentation From 1f4e8717cd2cd9b7096571abaa128ebe48a189fb Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Thu, 30 Nov 2017 15:24:38 +0800 Subject: [PATCH 06/20] Make sure don't miss the provider(module) --- .../org/skywalking/apm/collector/core/module/BootstrapFlow.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/BootstrapFlow.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/BootstrapFlow.java index 9cd994750..63a5ba5f3 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/BootstrapFlow.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/BootstrapFlow.java @@ -103,10 +103,12 @@ public class BootstrapFlow { if (isAllRequiredModuleStarted) { startupSequence.add(provider); allProviders.remove(i); + i--; } } else { startupSequence.add(provider); allProviders.remove(i); + i--; } } From aa0753703184eaa7a4bda613cb9850fea251eef5 Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Thu, 30 Nov 2017 15:34:11 +0800 Subject: [PATCH 07/20] Based on #632 , make sure local deploy successfully. --- apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml | 1 + apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml | 1 + apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml | 1 + apm-application-toolkit/apm-toolkit-trace/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml | 1 + apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml | 1 + pom.xml | 1 + 18 files changed, 18 insertions(+) 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 0435f8150..1da25be41 100644 --- a/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml +++ b/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml @@ -49,6 +49,7 @@ attach-sources + none jar 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 6905c7280..86e16fa3b 100644 --- a/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml +++ b/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml @@ -49,6 +49,7 @@ attach-sources + none jar 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 d12c15ff0..94da54eb3 100644 --- a/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml +++ b/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml @@ -49,6 +49,7 @@ attach-sources + none jar diff --git a/apm-application-toolkit/apm-toolkit-trace/pom.xml b/apm-application-toolkit/apm-toolkit-trace/pom.xml index 6750bfbac..024864a3e 100644 --- a/apm-application-toolkit/apm-toolkit-trace/pom.xml +++ b/apm-application-toolkit/apm-toolkit-trace/pom.xml @@ -41,6 +41,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml index f044205a5..b7596e805 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml @@ -148,6 +148,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml index 3193c551a..d8930b18e 100755 --- a/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml @@ -64,6 +64,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml b/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml index 23f52cdf6..bb30f7e7c 100755 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml @@ -58,6 +58,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml index 9f095c83c..fc9c7519a 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml @@ -60,6 +60,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml index 8b89fe451..a5a4bf6c7 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml @@ -54,6 +54,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml index 4ee21d503..ef20bcc36 100755 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml @@ -70,6 +70,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml index 9948a73dc..b3a766b9b 100755 --- a/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml @@ -64,6 +64,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml index 83f20f735..32bb38fba 100644 --- a/apm-sniffer/apm-sdk-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/pom.xml @@ -143,6 +143,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml index ce4c3a4ee..afb53be0a 100755 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml @@ -64,6 +64,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml index 5a5bcba1f..27c229d94 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml @@ -63,6 +63,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml index 7977f3c2a..6b96dd0dd 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml @@ -63,6 +63,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml index a1a31447e..0694f35b7 100644 --- a/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml @@ -66,6 +66,7 @@ attach-sources + none jar diff --git a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml index d832876eb..cd1015318 100644 --- a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml @@ -65,6 +65,7 @@ attach-sources + none jar diff --git a/pom.xml b/pom.xml index 1f92cfceb..da91cc79b 100644 --- a/pom.xml +++ b/pom.xml @@ -252,6 +252,7 @@ attach-sources + none jar From 3de06278fbc608c1c402043ee29d73850539eb88 Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Thu, 30 Nov 2017 15:47:10 +0800 Subject: [PATCH 08/20] Update readme. --- README.md | 2 +- README_ZH.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 31e607ea9..4943df313 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Sky Walking | [中文](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. # Screenshots -- Topological graph of application clusters based on dubbox and [motan](https://github.com/weibocom/motan). +- Discovery topological graph of application clusters automatically. - Trace query. diff --git a/README_ZH.md b/README_ZH.md index f5b9c8c25..af32a6e6a 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -33,7 +33,7 @@ Sky Walking | [English](README.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. # Screenshots -- 追踪基于 dubbox 和 [motan](https://github.com/weibocom/motan)的分布式系统,生成的拓扑截图 +- 分布式系统拓扑图自动发现 - 调用链查询 From 43cccdef510ef5815b7044bac65f3c499402d9fc Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Thu, 30 Nov 2017 16:23:54 +0800 Subject: [PATCH 09/20] Update link --- README_ZH.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_ZH.md b/README_ZH.md index af32a6e6a..3d92f9357 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -19,7 +19,7 @@ Sky Walking | [English](README.md) * 使用 [**@Trace**](docs/cn/Application-toolkit-trace-CN.md) 标注追踪业务方法 * 将 traceId 集成到 log4j, log4j2 或 logback这些日志组件中 * 纯Java后端Collector实现,提供RESTful和gRPC接口。兼容接受其他语言探针发送数据 - * [如何将探针的Metric和Trace数据上传到Collector?]() + * [如何将探针的Metric和Trace数据上传到Collector?](/docs/cn/How-to-communicate-with-the-collector-CN.md) * UI工程请查看 [skywalking-ui](https://github.com/OpenSkywalking/skywalking-ui) * 中文QQ群:392443393 From 994d11c501e82850304adcb02c1822c69c51d680 Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 1 Dec 2017 22:37:34 +0800 Subject: [PATCH 10/20] Update gRPC version. And shade google opencensus in agent. --- apm-network/pom.xml | 2 +- apm-sniffer/apm-agent-core/pom.xml | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apm-network/pom.xml b/apm-network/pom.xml index f2b789728..827d302e7 100644 --- a/apm-network/pom.xml +++ b/apm-network/pom.xml @@ -31,7 +31,7 @@ UTF-8 - 1.7.0 + 1.8.0 1.6 diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml index 86b18ec99..93be5dad6 100644 --- a/apm-sniffer/apm-agent-core/pom.xml +++ b/apm-sniffer/apm-agent-core/pom.xml @@ -35,7 +35,7 @@ UTF-8 9.4.2.v20170220 - 1.7.0 + 1.8.0 1.7.6 org.skywalking.apm.dependencies @@ -50,6 +50,8 @@ ${shade.package}.${shade.io.grpc.source} io.netty ${shade.package}.${shade.io.netty.source} + io.opencensus + ${shade.package}.${shade.io.opencensus.source} @@ -176,6 +178,10 @@ ${shade.io.netty.source} ${shade.io.netty.target} + + ${shade.io.opencensus.source} + ${shade.io.opencensus.target} + From 0b6f430f2998268c7ea5dedb0b405a650d02830b Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 1 Dec 2017 22:54:04 +0800 Subject: [PATCH 11/20] Update netty to 4.1.17 --- apm-network/pom.xml | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/apm-network/pom.xml b/apm-network/pom.xml index 827d302e7..cb1992737 100644 --- a/apm-network/pom.xml +++ b/apm-network/pom.xml @@ -32,6 +32,7 @@ UTF-8 1.8.0 + 4.1.17.Final 1.6 @@ -40,6 +41,20 @@ io.grpc grpc-netty ${grpc.version} + + + io.netty + netty-codec-http2 + + + io.netty + netty-transport-native-epoll + + + io.netty + netty-handler-proxy + + io.grpc @@ -51,6 +66,21 @@ grpc-stub ${grpc.version} + + io.netty + netty-codec-http2 + ${netty.version} + + + io.netty + netty-handler-proxy + ${netty.version} + + + io.netty + netty-transport-native-epoll + ${netty.version} + @@ -58,7 +88,7 @@ kr.motd.maven os-maven-plugin - 1.4.1.Final + 1.5.0.Final From 75d8dc6f68b203a465a87c34e2f21ab356d07c7b Mon Sep 17 00:00:00 2001 From: ascrutae Date: Sat, 2 Dec 2017 11:43:27 +0800 Subject: [PATCH 12/20] Change the weave type of postgresql plugin --- .../jdbc}/define/StatementEnhanceInfos.java | 2 +- .../CreateCallableStatementInterceptor.java | 2 +- .../CreatePreparedStatementInterceptor.java | 2 +- .../mysql/CreateStatementInterceptor.java | 2 +- .../StatementExecuteMethodsInterceptor.java | 2 +- ...tatementExecuteMethodsInterceptorTest.java | 2 +- .../CreateCallableStatementInterceptor.java | 54 ++++++++++++ .../CreatePreparedStatementInterceptor.java | 54 ++++++++++++ .../CreateStatementInterceptor.java | 57 +++++++++++++ .../StatementExecuteMethodsInterceptor.java | 75 ++++++++++++++++ ...AbstractJdbc2StatementInstrumentation.java | 85 +++++++++++++++++++ .../define/ConnectionInstrumentation.java | 12 +-- .../jdbc/postgresql/define/Constants.java | 31 +++++++ .../Jdbc3ConnectionInstrumentation.java | 15 ++-- .../Jdbc4ConnectionInstrumentation.java | 8 +- .../src/main/resources/skywalking-plugin.def | 1 + 16 files changed, 381 insertions(+), 23 deletions(-) rename apm-sniffer/apm-sdk-plugin/{mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql => jdbc-commons/src/main/java/org/skywalking/apm/plugin/jdbc}/define/StatementEnhanceInfos.java (96%) create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateCallableStatementInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreatePreparedStatementInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateStatementInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/StatementExecuteMethodsInterceptor.java create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/AbstractJdbc2StatementInstrumentation.java create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Constants.java diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/define/StatementEnhanceInfos.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java similarity index 96% rename from apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/define/StatementEnhanceInfos.java rename to apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java index 4a6b8fbc4..739c63e77 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/define/StatementEnhanceInfos.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java @@ -16,7 +16,7 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.plugin.jdbc.mysql.define; +package org.skywalking.apm.plugin.jdbc.define; import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateCallableStatementInterceptor.java b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateCallableStatementInterceptor.java index 5aaa176ab..cf07f9d83 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateCallableStatementInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateCallableStatementInterceptor.java @@ -22,7 +22,7 @@ import java.lang.reflect.Method; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.plugin.jdbc.mysql.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; /** diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreatePreparedStatementInterceptor.java b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreatePreparedStatementInterceptor.java index ca4c7deed..2f41e3a5f 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreatePreparedStatementInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreatePreparedStatementInterceptor.java @@ -22,7 +22,7 @@ import java.lang.reflect.Method; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.plugin.jdbc.mysql.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; /** diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateStatementInterceptor.java b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateStatementInterceptor.java index 564254b5c..490c1d9c1 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateStatementInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/CreateStatementInterceptor.java @@ -22,7 +22,7 @@ import java.lang.reflect.Method; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.plugin.jdbc.mysql.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; /** diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptor.java b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptor.java index 779ae38b0..015a3da30 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptor.java @@ -26,7 +26,7 @@ import org.skywalking.apm.agent.core.context.trace.SpanLayer; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; -import org.skywalking.apm.plugin.jdbc.mysql.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; /** diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/test/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/test/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptorTest.java index 8c8425c6f..86efbe777 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/test/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/src/test/java/org/skywalking/apm/plugin/jdbc/mysql/StatementExecuteMethodsInterceptorTest.java @@ -37,7 +37,7 @@ import org.skywalking.apm.agent.test.tools.SegmentStoragePoint; import org.skywalking.apm.agent.test.tools.SpanAssert; import org.skywalking.apm.agent.test.tools.TracingSegmentRunner; import org.skywalking.apm.network.trace.component.ComponentsDefine; -import org.skywalking.apm.plugin.jdbc.mysql.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; import static org.hamcrest.CoreMatchers.is; diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateCallableStatementInterceptor.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateCallableStatementInterceptor.java new file mode 100644 index 000000000..60f4d1512 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateCallableStatementInterceptor.java @@ -0,0 +1,54 @@ +/* + * 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.plugin.jdbc.postgresql; + +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; + +/** + * {@link CreateStatementInterceptor} intercepts the {@link org.postgresql.jdbc.PgConnection#prepareCall} method in + * {@link org.postgresql.jdbc.PgConnection}, {@link org.postgresql.jdbc.PgConnection} or {@link org.postgresql.jdbc3.Jdbc3Connection} class. + * + * @author zhangxin + */ +public class CreateCallableStatementInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + if (ret instanceof EnhancedInstance) { + ((EnhancedInstance)ret).setSkyWalkingDynamicField(new StatementEnhanceInfos((ConnectionInfo)objInst.getSkyWalkingDynamicField(), (String)allArguments[0], "CallableStatement")); + } + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + + } +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreatePreparedStatementInterceptor.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreatePreparedStatementInterceptor.java new file mode 100644 index 000000000..ea8972fc6 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreatePreparedStatementInterceptor.java @@ -0,0 +1,54 @@ +/* + * 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.plugin.jdbc.postgresql; + +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; + +/** + * {@link CreatePreparedStatementInterceptor} intercepts the {@link org.postgresql.jdbc.PgConnection#prepareStatement} method in + * {@link org.postgresql.jdbc.PgConnection}, {@link org.postgresql.jdbc.PgConnection} or {@link org.postgresql.jdbc3.Jdbc3Connection} class. + * + * @author zhangxin + */ +public class CreatePreparedStatementInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + if (ret instanceof EnhancedInstance) { + ((EnhancedInstance)ret).setSkyWalkingDynamicField(new StatementEnhanceInfos((ConnectionInfo)objInst.getSkyWalkingDynamicField(), (String)allArguments[0], "PreparedStatement")); + } + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + + } +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateStatementInterceptor.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateStatementInterceptor.java new file mode 100644 index 000000000..c26f7acf1 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/CreateStatementInterceptor.java @@ -0,0 +1,57 @@ +/* + * 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.plugin.jdbc.postgresql; + +import java.lang.reflect.Method; +import org.postgresql.jdbc.PgConnection; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; + +/** + * {@link CreateStatementInterceptor} intercepts the {@link PgConnection#createStatement} method in + * {@link org.postgresql.jdbc.PgConnection}, {@link org.postgresql.jdbc.PgConnection} or {@link org.postgresql.jdbc3.Jdbc3Connection} class. + * + * @author zhangxin + */ +public class CreateStatementInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + + if (ret instanceof EnhancedInstance) { + ((EnhancedInstance)ret).setSkyWalkingDynamicField(new StatementEnhanceInfos((ConnectionInfo)objInst.getSkyWalkingDynamicField(), "", "CallableStatement")); + } + + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + + } +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/StatementExecuteMethodsInterceptor.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/StatementExecuteMethodsInterceptor.java new file mode 100644 index 000000000..aab57d395 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/StatementExecuteMethodsInterceptor.java @@ -0,0 +1,75 @@ +/* + * 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.plugin.jdbc.postgresql; + +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.context.ContextManager; +import org.skywalking.apm.agent.core.context.tag.Tags; +import org.skywalking.apm.agent.core.context.trace.AbstractSpan; +import org.skywalking.apm.agent.core.context.trace.SpanLayer; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.skywalking.apm.plugin.jdbc.define.StatementEnhanceInfos; +import org.skywalking.apm.plugin.jdbc.trace.ConnectionInfo; + +/** + * {@link StatementExecuteMethodsInterceptor} create the exit span when the client call the interceptor methods. + * + * @author zhangxin + */ +public class StatementExecuteMethodsInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public final void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + StatementEnhanceInfos cacheObject = (StatementEnhanceInfos)objInst.getSkyWalkingDynamicField(); + ConnectionInfo connectInfo = cacheObject.getConnectionInfo(); + AbstractSpan span = ContextManager.createExitSpan(buildOperationName(connectInfo, method.getName(), cacheObject.getStatementName()), connectInfo.getDatabasePeer()); + Tags.DB_TYPE.set(span, "sql"); + Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); + Tags.DB_STATEMENT.set(span, cacheObject.getSql()); + span.setComponent(connectInfo.getComponent()); + + SpanLayer.asDB(span); + } + + @Override + public final Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, + Object ret) throws Throwable { + StatementEnhanceInfos cacheObject = (StatementEnhanceInfos)objInst.getSkyWalkingDynamicField(); + if (cacheObject.getConnectionInfo() != null) { + ContextManager.stopSpan(); + } + return ret; + } + + @Override public final void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + StatementEnhanceInfos cacheObject = (StatementEnhanceInfos)objInst.getSkyWalkingDynamicField(); + if (cacheObject.getConnectionInfo() != null) { + ContextManager.activeSpan().errorOccurred().log(t); + } + } + + private String buildOperationName(ConnectionInfo connectionInfo, String methodName, String statementName) { + return connectionInfo.getDBType() + "/JDBI/" + statementName + "/" + methodName; + } +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/AbstractJdbc2StatementInstrumentation.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/AbstractJdbc2StatementInstrumentation.java new file mode 100644 index 000000000..b46f90cb8 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/AbstractJdbc2StatementInstrumentation.java @@ -0,0 +1,85 @@ +/* + * 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.plugin.jdbc.postgresql.define; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import org.skywalking.apm.agent.core.plugin.match.ClassMatch; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; +import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName; + +/** + * {@link AbstractJdbc2StatementInstrumentation} intercept the following methods that the class which extend {@link + * org.postgresql.jdbc2.AbstractJdbc2Statement} by {@link org.skywalking.apm.plugin.jdbc.postgresql.StatementExecuteMethodsInterceptor}.
+ * 1. the execute with non parameter + * 2. the execute with one parameter + * 3. the executeBatch + * 4. the executeQuery with non parameter + * 5. the executeQuery with one parameter + * 6. the executeUpdate with non parameter + * 7. the executeUpdate with one parameter + * 8. the addBatch with non parameter + * 9. the addBatch with one parameter + * + * @author zhangxin + */ +public class AbstractJdbc2StatementInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { + + private static final String ENHANCE_CLASS = "org.postgresql.jdbc2.AbstractJdbc2Statement"; + private static final String INTERCEPTOR_CLASS = "org.skywalking.apm.plugin.jdbc.postgresql.StatementExecuteMethodsInterceptor"; + + @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { + return new ConstructorInterceptPoint[0]; + } + + @Override protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named("execute").and(takesArguments(0)) + .or(named("execute").and(takesArguments(1))) + .or(named("executeBatch")) + .or(named("executeQuery").and(takesArguments(0))) + .or(named("executeQuery").and(takesArguments(1))) + .or(named("executeUpdate").and(takesArguments(0))) + .or(named("executeUpdate").and(takesArguments(1))) + .or(named("addBatch").and(takesArguments(1))) + .or(named("addBatch").and(takesArguments(0))); + } + + @Override public String getMethodsInterceptor() { + return INTERCEPTOR_CLASS; + } + + @Override public boolean isOverrideArgs() { + return false; + } + } + }; + } + + @Override protected ClassMatch enhanceClass() { + return byName(ENHANCE_CLASS); + } +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/ConnectionInstrumentation.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/ConnectionInstrumentation.java index df520a9e8..8c670cc15 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/ConnectionInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/ConnectionInstrumentation.java @@ -31,15 +31,15 @@ import static org.skywalking.apm.agent.core.plugin.bytebuddy.ArgumentTypeNameMat import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName; import static org.skywalking.apm.plugin.jdbc.define.Constants.CLOSE_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.COMMIT_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.CREATE_STATEMENT_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.CREATE_STATEMENT_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_CALL_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_CALL_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.RELEASE_SAVE_POINT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.ROLLBACK_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.SERVICE_METHOD_INTERCEPT_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_STATEMENT_INTERCEPTOR_CLASS; /** * {@link ConnectionInstrumentation} intercept the following methods that the class which extend {@link @@ -74,7 +74,7 @@ public class ConnectionInstrumentation extends ClassInstanceMethodsEnhancePlugin } @Override public String getMethodsInterceptor() { - return PREPARE_STATEMENT_INTERCEPT_CLASS; + return CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { @@ -100,7 +100,7 @@ public class ConnectionInstrumentation extends ClassInstanceMethodsEnhancePlugin } @Override public String getMethodsInterceptor() { - return PREPARE_CALL_INTERCEPT_CLASS; + return CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { @@ -113,7 +113,7 @@ public class ConnectionInstrumentation extends ClassInstanceMethodsEnhancePlugin } @Override public String getMethodsInterceptor() { - return CREATE_STATEMENT_INTERCEPT_CLASS; + return CREATE_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Constants.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Constants.java new file mode 100644 index 000000000..78d3e7055 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Constants.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.plugin.jdbc.postgresql.define; + +/** + * Interceptor class name constant variable + * + * @author zhangxin + */ +public class Constants { + public static final String CREATE_STATEMENT_INTERCEPTOR_CLASS = "org.skywalking.apm.plugin.jdbc.postgresql.CreateStatementInterceptor"; + public static final String CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS = "org.skywalking.apm.plugin.jdbc.postgresql.CreatePreparedStatementInterceptor"; + public static final String CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS = "org.skywalking.apm.plugin.jdbc.postgresql.CreateCallableStatementInterceptor"; + +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc3ConnectionInstrumentation.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc3ConnectionInstrumentation.java index 191d8607b..2c26d3436 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc3ConnectionInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc3ConnectionInstrumentation.java @@ -30,15 +30,15 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName; import static org.skywalking.apm.plugin.jdbc.define.Constants.CLOSE_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.COMMIT_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.CREATE_STATEMENT_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.CREATE_STATEMENT_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_CALL_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_CALL_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.RELEASE_SAVE_POINT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.ROLLBACK_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.SERVICE_METHOD_INTERCEPT_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_STATEMENT_INTERCEPTOR_CLASS; /** * {@link Jdbc3ConnectionInstrumentation} intercept the following methods that the class which extend {@link @@ -69,7 +69,7 @@ public class Jdbc3ConnectionInstrumentation extends ClassInstanceMethodsEnhanceP } @Override public String getMethodsInterceptor() { - return PREPARE_STATEMENT_INTERCEPT_CLASS; + return CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { @@ -82,7 +82,7 @@ public class Jdbc3ConnectionInstrumentation extends ClassInstanceMethodsEnhanceP } @Override public String getMethodsInterceptor() { - return PREPARE_CALL_INTERCEPT_CLASS; + return CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { @@ -95,7 +95,7 @@ public class Jdbc3ConnectionInstrumentation extends ClassInstanceMethodsEnhanceP } @Override public String getMethodsInterceptor() { - return CREATE_STATEMENT_INTERCEPT_CLASS; + return CREATE_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { @@ -104,7 +104,8 @@ public class Jdbc3ConnectionInstrumentation extends ClassInstanceMethodsEnhanceP }, new InstanceMethodsInterceptPoint() { @Override public ElementMatcher getMethodsMatcher() { - return named(COMMIT_METHOD_NAME).or(named(ROLLBACK_METHOD_NAME)).or(named(CLOSE_METHOD_NAME)).or(named(RELEASE_SAVE_POINT_METHOD_NAME)); + return named(COMMIT_METHOD_NAME).or(named(ROLLBACK_METHOD_NAME)).or(named(CLOSE_METHOD_NAME)) + .or(named(RELEASE_SAVE_POINT_METHOD_NAME)); } @Override public String getMethodsInterceptor() { diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc4ConnectionInstrumentation.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc4ConnectionInstrumentation.java index 7be5b62f6..c3507bc43 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc4ConnectionInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/postgresql/define/Jdbc4ConnectionInstrumentation.java @@ -32,13 +32,13 @@ import static org.skywalking.apm.plugin.jdbc.define.Constants.CLOSE_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.COMMIT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.CREATE_STATEMENT_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.CREATE_STATEMENT_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_CALL_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_CALL_METHOD_NAME; -import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_INTERCEPT_CLASS; import static org.skywalking.apm.plugin.jdbc.define.Constants.PREPARE_STATEMENT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.RELEASE_SAVE_POINT_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.ROLLBACK_METHOD_NAME; import static org.skywalking.apm.plugin.jdbc.define.Constants.SERVICE_METHOD_INTERCEPT_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS; +import static org.skywalking.apm.plugin.jdbc.postgresql.define.Constants.CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS; /** * {@link Jdbc4ConnectionInstrumentation} intercept the following methods that the class which extend {@link @@ -69,7 +69,7 @@ public class Jdbc4ConnectionInstrumentation extends ClassInstanceMethodsEnhanceP } @Override public String getMethodsInterceptor() { - return PREPARE_STATEMENT_INTERCEPT_CLASS; + return CREATE_PREPARED_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { @@ -82,7 +82,7 @@ public class Jdbc4ConnectionInstrumentation extends ClassInstanceMethodsEnhanceP } @Override public String getMethodsInterceptor() { - return PREPARE_CALL_INTERCEPT_CLASS; + return CREATE_CALLABLE_STATEMENT_INTERCEPTOR_CLASS; } @Override public boolean isOverrideArgs() { diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def index 3fe0ad09b..b069baff8 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def @@ -2,3 +2,4 @@ postgresql-8.x=org.skywalking.apm.plugin.jdbc.postgresql.define.DriverInstrument postgresql-8.x=org.skywalking.apm.plugin.jdbc.postgresql.define.Jdbc3ConnectionInstrumentation postgresql-8.x=org.skywalking.apm.plugin.jdbc.postgresql.define.Jdbc4ConnectionInstrumentation postgresql-8.x=org.skywalking.apm.plugin.jdbc.postgresql.define.ConnectionInstrumentation +postgresql-8.x=org.skywalking.apm.plugin.jdbc.postgresql.define.AbstractJdbc2StatementInstrumentation From 31970312d1333c0e72e7cacd9eb44b10b8655593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=99=9F=20Wu=20Sheng?= Date: Mon, 4 Dec 2017 10:07:27 +0800 Subject: [PATCH 13/20] Update pom.xml --- apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml index efcc30e36..929d4ff0b 100644 --- a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml @@ -5,7 +5,7 @@ apm-sdk-plugin org.skywalking - 3.2.5-2017 + 3.3.0-2017 4.0.0 @@ -51,4 +51,4 @@
- \ No newline at end of file + From 8e2c93c46cc38d2480b09776f4ee335c83ae489e Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Mon, 4 Dec 2017 10:24:53 +0800 Subject: [PATCH 14/20] Add RocketMQ 4.x plugin --- docs/Supported-list.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Supported-list.md b/docs/Supported-list.md index da388b973..7439967bb 100644 --- a/docs/Supported-list.md +++ b/docs/Supported-list.md @@ -26,6 +26,8 @@ * [Dubbox](https://github.com/dangdangdotcom/dubbox) 2.8.4 * [Motan](https://github.com/weibocom/motan) 0.2 * [gRPC](https://github.com/grpc/grpc-java) 1.6+ +* MQ + * [RocketMQ](https://github.com/apache/rocketmq) 4.x * NoSQL * Redis * [Jedis](https://github.com/xetorthio/jedis) 2.8 From b501bc818941a26c79e4d3becec776b24917c2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=99=9F=20Wu=20Sheng?= Date: Mon, 4 Dec 2017 10:26:22 +0800 Subject: [PATCH 15/20] Update pom.xml --- apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml index 8ec9e4c08..76977bd2f 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml @@ -23,7 +23,7 @@ apm-sdk-plugin org.skywalking - 3.2.3-2017 + 3.3.0-2017 4.0.0 From bfbf7aebc9014aac3b90c4309c89694d639f49a1 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Mon, 4 Dec 2017 10:49:10 +0800 Subject: [PATCH 16/20] fix compile failed --- .../apm/network/trace/component/ComponentsDefine.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 20405de5c..20476f96d 100644 --- 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 @@ -85,7 +85,7 @@ public class ComponentsDefine { } public ComponentsDefine() { - components = new String[25]; + components = new String[26]; addComponent(TOMCAT); addComponent(HTTPCLIENT); addComponent(DUBBO); From 1fa81783f79483ea95ef8113cf812578f1d003a3 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Mon, 4 Dec 2017 12:45:00 +0800 Subject: [PATCH 17/20] change the remote address of MQ exit span to naming service address --- .../AbstractMessageConsumeInterceptor.java | 3 +- ...MessageConcurrentlyConsumeInterceptor.java | 2 +- .../v4}/MessageOrderlyConsumeInterceptor.java | 2 +- .../rocketMQ/v4/MessageSendInterceptor.java | 3 +- .../v4/UpdateNameServerInterceptor.java | 43 +++++++++++++++++++ ...umeMessageConcurrentlyInstrumentation.java | 2 +- .../ConsumeMessageOrderlyInstrumentation.java | 2 +- .../MQClientAPIImplInstrumentation.java | 15 +++++++ .../v4/MessageSendInterceptorTest.java | 19 ++++++-- 9 files changed, 81 insertions(+), 10 deletions(-) rename apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/{apache/rocketmq/common/message => skywalking/apm/plugin/rocketMQ/v4}/AbstractMessageConsumeInterceptor.java (96%) rename apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/{apache/rocketmq/common/message => skywalking/apm/plugin/rocketMQ/v4}/MessageConcurrentlyConsumeInterceptor.java (97%) rename apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/{apache/rocketmq/common/message => skywalking/apm/plugin/rocketMQ/v4}/MessageOrderlyConsumeInterceptor.java (97%) create mode 100644 apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/UpdateNameServerInterceptor.java diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java similarity index 96% rename from apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java rename to apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java index 04af5c96a..b428759a8 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/AbstractMessageConsumeInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java @@ -16,10 +16,11 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.apache.rocketmq.common.message; +package org.skywalking.apm.plugin.rocketMQ.v4; import java.lang.reflect.Method; import java.util.List; +import org.apache.rocketmq.common.message.MessageExt; import org.skywalking.apm.agent.core.context.CarrierItem; import org.skywalking.apm.agent.core.context.ContextCarrier; import org.skywalking.apm.agent.core.context.ContextManager; diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageConcurrentlyConsumeInterceptor.java similarity index 97% rename from apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java rename to apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageConcurrentlyConsumeInterceptor.java index fb5725228..2e786e651 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageConcurrentlyConsumeInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageConcurrentlyConsumeInterceptor.java @@ -16,7 +16,7 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.apache.rocketmq.common.message; +package org.skywalking.apm.plugin.rocketMQ.v4; import java.lang.reflect.Method; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageOrderlyConsumeInterceptor.java similarity index 97% rename from apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java rename to apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageOrderlyConsumeInterceptor.java index dcf94717e..151bc8788 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/rocketmq/common/message/MessageOrderlyConsumeInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageOrderlyConsumeInterceptor.java @@ -16,7 +16,7 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.apache.rocketmq.common.message; +package org.skywalking.apm.plugin.rocketMQ.v4; import java.lang.reflect.Method; import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus; diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java index b85165856..d8f9eae70 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java @@ -56,7 +56,8 @@ public class MessageSendInterceptor implements InstanceMethodsAroundInterceptor MethodInterceptResult result) throws Throwable { Message message = (Message)allArguments[2]; ContextCarrier contextCarrier = new ContextCarrier(); - AbstractSpan span = ContextManager.createExitSpan(buildOperationName(message.getTopic()), contextCarrier, (String)allArguments[0]); + String namingServiceAddress = String.valueOf(objInst.getSkyWalkingDynamicField()); + AbstractSpan span = ContextManager.createExitSpan(buildOperationName(message.getTopic()), contextCarrier, namingServiceAddress); span.setComponent(ComponentsDefine.ROCKET_MQ); span.setLayer(SpanLayer.MQ); span.tag("brokerName", (String)allArguments[1]); diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/UpdateNameServerInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/UpdateNameServerInterceptor.java new file mode 100644 index 000000000..59d755e5e --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/UpdateNameServerInterceptor.java @@ -0,0 +1,43 @@ +/* + * 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.plugin.rocketMQ.v4; + +import java.lang.reflect.Method; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; + +public class UpdateNameServerInterceptor implements InstanceMethodsAroundInterceptor { + @Override + public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + MethodInterceptResult result) throws Throwable { + objInst.setSkyWalkingDynamicField(allArguments[0]); + } + + @Override + public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, + Object ret) throws Throwable { + return ret; + } + + @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, + Class[] argumentsTypes, Throwable t) { + + } +} diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java index 225471878..18214fe3e 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageConcurrentlyInstrumentation.java @@ -31,7 +31,7 @@ import static org.skywalking.apm.agent.core.plugin.match.HierarchyMatch.byHierar /** * {@link ConsumeMessageConcurrentlyInstrumentation} intercepts the {@link org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently#consumeMessage(java.util.List, * org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext)} method by using {@link - * org.apache.rocketmq.common.message.MessageConcurrentlyConsumeInterceptor}. + * org.skywalking.apm.plugin.rocketMQ.v4.MessageConcurrentlyConsumeInterceptor}. * * @author zhang xin */ diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java index 78984cd66..968259ab6 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/ConsumeMessageOrderlyInstrumentation.java @@ -31,7 +31,7 @@ import static org.skywalking.apm.agent.core.plugin.match.HierarchyMatch.byHierar /** * {@link ConsumeMessageOrderlyInstrumentation} intercepts the {@link org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly#consumeMessage(java.util.List, * org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext)} method by using {@link - * org.apache.rocketmq.common.message.MessageConcurrentlyConsumeInterceptor}. + * org.skywalking.apm.plugin.rocketMQ.v4.MessageConcurrentlyConsumeInterceptor}. * * @author zhang xin */ diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java index 582e31134..5cf5d8a9f 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/skywalking/apm/plugin/rocketMQ/v4/define/MQClientAPIImplInstrumentation.java @@ -44,6 +44,8 @@ public class MQClientAPIImplInstrumentation extends ClassInstanceMethodsEnhanceP private static final String ENHANCE_CLASS = "org.apache.rocketmq.client.impl.MQClientAPIImpl"; private static final String SEND_MESSAGE_METHOD_NAME = "sendMessage"; private static final String ASYNC_METHOD_INTERCEPTOR = "org.skywalking.apm.plugin.rocketMQ.v4.MessageSendInterceptor"; + public static final String UPDATE_NAME_SERVER_INTERCEPT_CLASS = "org.skywalking.apm.plugin.rocketMQ.v4.UpdateNameServerInterceptor"; + public static final String UPDATE_NAME_SERVER_METHOD_NAME = "updateNameServerAddressList"; @Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() { return new ConstructorInterceptPoint[0]; @@ -60,6 +62,19 @@ public class MQClientAPIImplInstrumentation extends ClassInstanceMethodsEnhanceP return ASYNC_METHOD_INTERCEPTOR; } + @Override public boolean isOverrideArgs() { + return false; + } + }, + new InstanceMethodsInterceptPoint() { + @Override public ElementMatcher getMethodsMatcher() { + return named(UPDATE_NAME_SERVER_METHOD_NAME); + } + + @Override public String getMethodsInterceptor() { + return UPDATE_NAME_SERVER_INTERCEPT_CLASS; + } + @Override public boolean isOverrideArgs() { return false; } diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java index 8bc0a0a72..d4d783712 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/test/java/org/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptorTest.java @@ -74,9 +74,20 @@ public class MessageSendInterceptorTest { @Mock private EnhancedInstance callBack; + private EnhancedInstance enhancedInstance; + @Before public void setUp() { messageSendInterceptor = new MessageSendInterceptor(); + enhancedInstance = new EnhancedInstance() { + @Override public Object getSkyWalkingDynamicField() { + return "127.0.0.1:6543"; + } + + @Override public void setSkyWalkingDynamicField(Object value) { + + } + }; arguments = new Object[] {"127.0.0.1", "test", message, messageRequestHeader, null, CommunicationMode.ASYNC, callBack}; argumentsWithoutCallback = new Object[] {"127.0.0.1", "test", message, messageRequestHeader, null, CommunicationMode.ASYNC, null}; @@ -86,8 +97,8 @@ public class MessageSendInterceptorTest { @Test public void testSendMessage() throws Throwable { - messageSendInterceptor.beforeMethod(null, null, arguments, null, null); - messageSendInterceptor.afterMethod(null, null, arguments, null, null); + messageSendInterceptor.beforeMethod(enhancedInstance, null, arguments, null, null); + messageSendInterceptor.afterMethod(enhancedInstance, null, arguments, null, null); assertThat(segmentStorage.getTraceSegments().size(), is(1)); TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); @@ -106,8 +117,8 @@ public class MessageSendInterceptorTest { @Test public void testSendMessageWithoutCallBack() throws Throwable { - messageSendInterceptor.beforeMethod(null, null, argumentsWithoutCallback, null, null); - messageSendInterceptor.afterMethod(null, null, argumentsWithoutCallback, null, null); + messageSendInterceptor.beforeMethod(enhancedInstance, null, argumentsWithoutCallback, null, null); + messageSendInterceptor.afterMethod(enhancedInstance, null, argumentsWithoutCallback, null, null); assertThat(segmentStorage.getTraceSegments().size(), is(1)); TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0); From 11b3105676bb8aff5f69bb1ad6dd067cfa5e5b09 Mon Sep 17 00:00:00 2001 From: wu-sheng Date: Mon, 4 Dec 2017 17:28:08 +0800 Subject: [PATCH 18/20] Fix worker ids. --- .../parser/standardization/SegmentStandardizationWorker.java | 2 +- .../agent/stream/worker/jvm/CpuMetricPersistenceWorker.java | 2 +- .../agent/stream/worker/jvm/GCMetricPersistenceWorker.java | 2 +- .../agent/stream/worker/jvm/InstHeartBeatPersistenceWorker.java | 2 +- .../agent/stream/worker/jvm/MemoryMetricPersistenceWorker.java | 2 +- .../stream/worker/jvm/MemoryPoolMetricPersistenceWorker.java | 2 +- .../stream/worker/register/ApplicationRegisterRemoteWorker.java | 2 +- .../stream/worker/register/ApplicationRegisterSerialWorker.java | 2 +- .../stream/worker/register/InstanceRegisterRemoteWorker.java | 2 +- .../stream/worker/register/InstanceRegisterSerialWorker.java | 2 +- .../stream/worker/register/ServiceNameRegisterRemoteWorker.java | 2 +- .../stream/worker/register/ServiceNameRegisterSerialWorker.java | 2 +- .../worker/trace/global/GlobalTracePersistenceWorker.java | 2 +- .../worker/trace/instance/InstPerformancePersistenceWorker.java | 2 +- .../worker/trace/node/NodeComponentAggregationWorker.java | 2 +- .../worker/trace/node/NodeComponentPersistenceWorker.java | 2 +- .../stream/worker/trace/node/NodeComponentRemoteWorker.java | 2 +- .../stream/worker/trace/node/NodeMappingAggregationWorker.java | 2 +- .../stream/worker/trace/node/NodeMappingPersistenceWorker.java | 2 +- .../agent/stream/worker/trace/node/NodeMappingRemoteWorker.java | 2 +- .../worker/trace/noderef/NodeReferenceAggregationWorker.java | 2 +- .../worker/trace/noderef/NodeReferencePersistenceWorker.java | 2 +- .../stream/worker/trace/noderef/NodeReferenceRemoteWorker.java | 2 +- .../worker/trace/segment/SegmentCostPersistenceWorker.java | 2 +- .../stream/worker/trace/segment/SegmentPersistenceWorker.java | 2 +- .../worker/trace/service/ServiceEntryAggregationWorker.java | 2 +- .../worker/trace/service/ServiceEntryPersistenceWorker.java | 2 +- .../stream/worker/trace/service/ServiceEntryRemoteWorker.java | 2 +- .../trace/serviceref/ServiceReferenceAggregationWorker.java | 2 +- .../trace/serviceref/ServiceReferencePersistenceWorker.java | 2 +- .../worker/trace/serviceref/ServiceReferenceRemoteWorker.java | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java index 0383d9327..428d66bec 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java @@ -42,7 +42,7 @@ public class SegmentStandardizationWorker extends AbstractLocalAsyncWorker { @Override public int id() { - return 0; + return 122; } public MemoryPoolMetricPersistenceWorker(ModuleManager moduleManager) { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java index 8d828766c..ef2022d66 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java @@ -40,7 +40,7 @@ public class ApplicationRegisterRemoteWorker extends AbstractRemoteWorker { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java index f1f5a0785..73f15964a 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java @@ -37,7 +37,7 @@ public class NodeComponentPersistenceWorker extends PersistenceWorker { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java index 5bf662bdb..926f1d138 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java @@ -37,7 +37,7 @@ public class NodeMappingPersistenceWorker extends PersistenceWorker { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java index f03d8ec1e..1d8abb2e8 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java @@ -37,7 +37,7 @@ public class NodeReferencePersistenceWorker extends PersistenceWorker { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java index f40d55b6e..433e93bde 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java @@ -37,7 +37,7 @@ public class ServiceEntryPersistenceWorker extends PersistenceWorker { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java index 13a72965a..ad0b24698 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java @@ -37,7 +37,7 @@ public class ServiceReferencePersistenceWorker extends PersistenceWorker Date: Mon, 4 Dec 2017 21:12:58 +0800 Subject: [PATCH 19/20] Don't release auto delete feature, yet, in 3.2.6 --- .../apm/collector/storage/es/DataTTLKeeperTimer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java index f33f65290..37fe9c464 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java @@ -55,7 +55,8 @@ public class DataTTLKeeperTimer { } public void start() { - Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(this::delete, 1, 8, TimeUnit.HOURS); + //TODO: Don't release auto delete feature, yet + //Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(this::delete, 1, 8, TimeUnit.HOURS); } private void delete() { From 055c760bc0d00b5be21994f5a593da35584c7aca Mon Sep 17 00:00:00 2001 From: wusheng Date: Mon, 4 Dec 2017 22:04:28 +0800 Subject: [PATCH 20/20] Set versions, and documents ready for releasing 3.2.6 --- apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml | 2 +- apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml | 2 +- apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml | 2 +- apm-application-toolkit/apm-toolkit-opentracing/pom.xml | 2 +- apm-application-toolkit/apm-toolkit-trace/pom.xml | 2 +- apm-application-toolkit/pom.xml | 2 +- .../collector-agent-grpc-define/pom.xml | 4 ++-- .../collector-agent-grpc-provider/pom.xml | 2 +- apm-collector/apm-collector-agent-grpc/pom.xml | 4 ++-- .../collector-agent-jetty-define/pom.xml | 4 ++-- .../collector-agent-jetty-provider/pom.xml | 2 +- apm-collector/apm-collector-agent-jetty/pom.xml | 4 ++-- .../collector-agent-stream-define/pom.xml | 4 ++-- .../collector-agent-stream-provider/pom.xml | 4 ++-- apm-collector/apm-collector-agent-stream/pom.xml | 4 ++-- .../collector-baseline-computing-define/pom.xml | 4 ++-- .../collector-baseline-computing-provider/pom.xml | 4 ++-- .../collector-baseline-scheduler-define/pom.xml | 4 ++-- apm-collector/apm-collector-baseline/pom.xml | 4 ++-- apm-collector/apm-collector-boot/pom.xml | 2 +- .../apm-collector-cache/collector-cache-define/pom.xml | 4 ++-- .../collector-cache-guava-provider/pom.xml | 4 ++-- apm-collector/apm-collector-cache/pom.xml | 2 +- .../apm-collector-cluster/collector-cluster-define/pom.xml | 2 +- .../collector-cluster-redis-provider/pom.xml | 2 +- .../collector-cluster-standalone-provider/pom.xml | 2 +- .../collector-cluster-zookeeper-provider/pom.xml | 2 +- apm-collector/apm-collector-cluster/pom.xml | 4 ++-- .../apm-collector-component/client-component/pom.xml | 2 +- apm-collector/apm-collector-component/pom.xml | 2 +- .../apm-collector-component/server-component/pom.xml | 2 +- apm-collector/apm-collector-core/pom.xml | 2 +- .../collector-grpc-manager-define/pom.xml | 2 +- .../collector-grpc-manager-provider/pom.xml | 2 +- apm-collector/apm-collector-grpc-manager/pom.xml | 2 +- apm-collector/apm-collector-instrument/pom.xml | 2 +- .../collector-jetty-manager-define/pom.xml | 2 +- .../collector-jetty-manager-provider/pom.xml | 2 +- apm-collector/apm-collector-jetty-manager/pom.xml | 2 +- .../apm-collector-naming/collector-naming-define/pom.xml | 2 +- .../collector-naming-jetty-provider/pom.xml | 2 +- apm-collector/apm-collector-naming/pom.xml | 2 +- .../collector-queue-datacarrier-provider/pom.xml | 2 +- .../apm-collector-queue/collector-queue-define/pom.xml | 2 +- .../collector-queue-disruptor-provider/pom.xml | 2 +- apm-collector/apm-collector-queue/pom.xml | 4 ++-- .../apm-collector-remote/collector-remote-define/pom.xml | 2 +- .../collector-remote-grpc-provider/pom.xml | 2 +- .../collector-remote-kafka-provider/pom.xml | 2 +- apm-collector/apm-collector-remote/pom.xml | 4 ++-- .../apm-collector-storage/collector-storage-define/pom.xml | 2 +- .../collector-storage-es-provider/pom.xml | 2 +- .../apm/collector/storage/es/DataTTLKeeperTimer.java | 2 -- .../collector-storage-h2-provider/pom.xml | 2 +- apm-collector/apm-collector-storage/pom.xml | 4 ++-- apm-collector/apm-collector-stream/pom.xml | 4 ++-- apm-collector/apm-collector-ui/collector-ui-define/pom.xml | 2 +- .../apm-collector-ui/collector-ui-jetty-provider/pom.xml | 4 ++-- apm-collector/apm-collector-ui/pom.xml | 4 ++-- apm-collector/pom.xml | 2 +- apm-commons/apm-datacarrier/pom.xml | 2 +- apm-commons/apm-util/pom.xml | 2 +- apm-commons/pom.xml | 2 +- apm-network/pom.xml | 2 +- apm-sniffer/apm-agent-core/pom.xml | 2 +- apm-sniffer/apm-agent/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml | 2 +- .../apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml | 2 +- .../jetty-plugin/jetty-client-9.x-plugin/pom.xml | 2 +- .../jetty-plugin/jetty-server-9.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml | 4 ++-- apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml | 2 +- .../apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml | 2 +- .../nutz-plugins/mvc-annotation-1.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml | 2 +- .../spring-plugins/concurrent-util-4.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml | 2 +- .../spring-plugins/mvc-annotation-3.x-plugin/pom.xml | 2 +- .../spring-plugins/mvc-annotation-4.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml | 2 +- .../spring-plugins/resttemplate-4.x-plugin/pom.xml | 2 +- .../spring-plugins/spring-cloud/netflix-plugins/pom.xml | 2 +- .../netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml | 2 +- .../apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml | 2 +- apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml | 2 +- apm-sniffer/apm-test-tools/pom.xml | 2 +- .../apm-toolkit-log4j-1.x-activation/pom.xml | 2 +- .../apm-toolkit-log4j-2.x-activation/pom.xml | 2 +- .../apm-toolkit-logback-1.x-activation/pom.xml | 2 +- .../apm-toolkit-opentracing-activation/pom.xml | 2 +- .../apm-toolkit-trace-activation/pom.xml | 2 +- apm-sniffer/apm-toolkit-activation/pom.xml | 2 +- apm-sniffer/pom.xml | 2 +- docker-compose.yml | 4 ++-- docs/Supported-list.md | 4 +++- docs/_config.yml | 1 - pom.xml | 2 +- 117 files changed, 139 insertions(+), 140 deletions(-) delete mode 100644 docs/_config.yml 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 1da25be41..70a81755d 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.3.0-2017 + 3.2.6-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 86e16fa3b..a26096ed2 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.3.0-2017 + 3.2.6-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 94da54eb3..6ddb48686 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-application-toolkit/apm-toolkit-opentracing/pom.xml b/apm-application-toolkit/apm-toolkit-opentracing/pom.xml index 3d69a33cd..fd89d05a1 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.3.0-2017 + 3.2.6-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 024864a3e..f4bed0633 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-application-toolkit/pom.xml b/apm-application-toolkit/pom.xml index b545efacb..c12953f35 100644 --- a/apm-application-toolkit/pom.xml +++ b/apm-application-toolkit/pom.xml @@ -21,7 +21,7 @@ apm org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 apm-application-toolkit diff --git a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml index b5504230c..370f289d7 100644 --- a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml @@ -23,11 +23,11 @@ apm-collector-agent-grpc org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 collector-agent-grpc-define jar - \ No newline at end of file + diff --git a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml index da92a7319..7c30de3f1 100644 --- a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-agent-grpc org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-agent-grpc/pom.xml b/apm-collector/apm-collector-agent-grpc/pom.xml index c57e53acd..4f0fff981 100644 --- a/apm-collector/apm-collector-agent-grpc/pom.xml +++ b/apm-collector/apm-collector-agent-grpc/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -41,4 +41,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml index f8f848969..82e3fed10 100644 --- a/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml @@ -23,11 +23,11 @@ apm-collector-agent-jetty org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 collector-agent-jetty-define jar - \ No newline at end of file + diff --git a/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml index 03bac8d60..74e428a2d 100644 --- a/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-agent-jetty org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-agent-jetty/pom.xml b/apm-collector/apm-collector-agent-jetty/pom.xml index 79454b956..3c888f6a2 100644 --- a/apm-collector/apm-collector-agent-jetty/pom.xml +++ b/apm-collector/apm-collector-agent-jetty/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -41,4 +41,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml index fb4fd771a..cce950518 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-agent-stream org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -37,4 +37,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml index 132b29e68..85a145b1e 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-agent-stream org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -52,4 +52,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-agent-stream/pom.xml b/apm-collector/apm-collector-agent-stream/pom.xml index f1a564bf1..11c8d2fe1 100644 --- a/apm-collector/apm-collector-agent-stream/pom.xml +++ b/apm-collector/apm-collector-agent-stream/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -41,4 +41,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-baseline/collector-baseline-computing-define/pom.xml b/apm-collector/apm-collector-baseline/collector-baseline-computing-define/pom.xml index 956d41523..89d8ef036 100644 --- a/apm-collector/apm-collector-baseline/collector-baseline-computing-define/pom.xml +++ b/apm-collector/apm-collector-baseline/collector-baseline-computing-define/pom.xml @@ -23,11 +23,11 @@ apm-collector-baseline org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 collector-baseline-computing-define - \ No newline at end of file + diff --git a/apm-collector/apm-collector-baseline/collector-baseline-computing-provider/pom.xml b/apm-collector/apm-collector-baseline/collector-baseline-computing-provider/pom.xml index ad9b9d61e..2e20d4e05 100644 --- a/apm-collector/apm-collector-baseline/collector-baseline-computing-provider/pom.xml +++ b/apm-collector/apm-collector-baseline/collector-baseline-computing-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-baseline org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -41,4 +41,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-baseline/collector-baseline-scheduler-define/pom.xml b/apm-collector/apm-collector-baseline/collector-baseline-scheduler-define/pom.xml index 5a0cc49bf..a424b3228 100644 --- a/apm-collector/apm-collector-baseline/collector-baseline-scheduler-define/pom.xml +++ b/apm-collector/apm-collector-baseline/collector-baseline-scheduler-define/pom.xml @@ -23,11 +23,11 @@ apm-collector-baseline org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 collector-baseline-scheduler-define - \ No newline at end of file + diff --git a/apm-collector/apm-collector-baseline/pom.xml b/apm-collector/apm-collector-baseline/pom.xml index 7c9c05140..c757df3bc 100644 --- a/apm-collector/apm-collector-baseline/pom.xml +++ b/apm-collector/apm-collector-baseline/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -42,4 +42,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 caec74d40..d8812fa36 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-cache/collector-cache-define/pom.xml b/apm-collector/apm-collector-cache/collector-cache-define/pom.xml index a8747780d..6abdcf716 100644 --- a/apm-collector/apm-collector-cache/collector-cache-define/pom.xml +++ b/apm-collector/apm-collector-cache/collector-cache-define/pom.xml @@ -23,11 +23,11 @@ apm-collector-cache org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 collector-cache-define jar - \ No newline at end of file + diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml b/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml index b6233486e..9b5dc8a07 100644 --- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml +++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-cache org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -42,4 +42,4 @@ 19.0 - \ No newline at end of file + diff --git a/apm-collector/apm-collector-cache/pom.xml b/apm-collector/apm-collector-cache/pom.xml index 2f544b299..ee77c07f4 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.3.0-2017 + 3.2.6-2017 4.0.0 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 6aae47ecb..77af92e6a 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml +++ b/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-cluster org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 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 93f498265..55667b748 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.3.0-2017 + 3.2.6-2017 4.0.0 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 a20b3a6f0..c7c2f4bda 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.3.0-2017 + 3.2.6-2017 4.0.0 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 23a1bb836..8c7ecd0ce 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-cluster/pom.xml b/apm-collector/apm-collector-cluster/pom.xml index 9675ace2c..7f02e1ae7 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.3.0-2017 + 3.2.6-2017 4.0.0 @@ -30,4 +30,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-component/client-component/pom.xml b/apm-collector/apm-collector-component/client-component/pom.xml index 93c322fdf..3a6450e9b 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-component/pom.xml b/apm-collector/apm-collector-component/pom.xml index c68c18766..1e52cd98d 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-component/server-component/pom.xml b/apm-collector/apm-collector-component/server-component/pom.xml index 0ff3d1fcf..fa7650faa 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-core/pom.xml b/apm-collector/apm-collector-core/pom.xml index 99b596a91..a88f3df7b 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.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml index 204658b86..d9daeb22e 100644 --- a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml +++ b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-grpc-manager org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml index 16e82e897..d3486e75f 100644 --- a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml +++ b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-grpc-manager org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-grpc-manager/pom.xml b/apm-collector/apm-collector-grpc-manager/pom.xml index 8f49f859b..76d002833 100644 --- a/apm-collector/apm-collector-grpc-manager/pom.xml +++ b/apm-collector/apm-collector-grpc-manager/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-instrument/pom.xml b/apm-collector/apm-collector-instrument/pom.xml index 5ef52b736..d0dc6507e 100644 --- a/apm-collector/apm-collector-instrument/pom.xml +++ b/apm-collector/apm-collector-instrument/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml index 943717b19..e1fc8bc7f 100644 --- a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml +++ b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-jetty-manager org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml index bdc4e882a..fad0c4dd8 100644 --- a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml +++ b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-jetty-manager org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-jetty-manager/pom.xml b/apm-collector/apm-collector-jetty-manager/pom.xml index 0e731a269..7266411dd 100644 --- a/apm-collector/apm-collector-jetty-manager/pom.xml +++ b/apm-collector/apm-collector-jetty-manager/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-naming/collector-naming-define/pom.xml b/apm-collector/apm-collector-naming/collector-naming-define/pom.xml index 6ec82d3fc..038354485 100644 --- a/apm-collector/apm-collector-naming/collector-naming-define/pom.xml +++ b/apm-collector/apm-collector-naming/collector-naming-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-naming org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml index 14cbc73c8..e5b9fc5e5 100644 --- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml +++ b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-naming org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-naming/pom.xml b/apm-collector/apm-collector-naming/pom.xml index cf466c859..5e1bc5868 100644 --- a/apm-collector/apm-collector-naming/pom.xml +++ b/apm-collector/apm-collector-naming/pom.xml @@ -5,7 +5,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-queue/collector-queue-datacarrier-provider/pom.xml b/apm-collector/apm-collector-queue/collector-queue-datacarrier-provider/pom.xml index 8c51bcff3..b1eb087b0 100644 --- a/apm-collector/apm-collector-queue/collector-queue-datacarrier-provider/pom.xml +++ b/apm-collector/apm-collector-queue/collector-queue-datacarrier-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-queue org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-queue/collector-queue-define/pom.xml b/apm-collector/apm-collector-queue/collector-queue-define/pom.xml index 4a78d2312..cf2fdb696 100644 --- a/apm-collector/apm-collector-queue/collector-queue-define/pom.xml +++ b/apm-collector/apm-collector-queue/collector-queue-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-queue org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-queue/collector-queue-disruptor-provider/pom.xml b/apm-collector/apm-collector-queue/collector-queue-disruptor-provider/pom.xml index e162ac72e..5903d7c21 100644 --- a/apm-collector/apm-collector-queue/collector-queue-disruptor-provider/pom.xml +++ b/apm-collector/apm-collector-queue/collector-queue-disruptor-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-queue org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-queue/pom.xml b/apm-collector/apm-collector-queue/pom.xml index 5e1c53d62..5eea9127c 100644 --- a/apm-collector/apm-collector-queue/pom.xml +++ b/apm-collector/apm-collector-queue/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -42,4 +42,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-remote/collector-remote-define/pom.xml b/apm-collector/apm-collector-remote/collector-remote-define/pom.xml index 5a5c1b73f..ff2695f7c 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/pom.xml +++ b/apm-collector/apm-collector-remote/collector-remote-define/pom.xml @@ -5,7 +5,7 @@ apm-collector-remote org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml index 9131201cb..940b23b6a 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-remote org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml b/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml index 48544db6d..ba3e238c4 100644 --- a/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml +++ b/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-remote org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-remote/pom.xml b/apm-collector/apm-collector-remote/pom.xml index f125137d7..a99187c9b 100644 --- a/apm-collector/apm-collector-remote/pom.xml +++ b/apm-collector/apm-collector-remote/pom.xml @@ -5,7 +5,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -39,4 +39,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-storage/collector-storage-define/pom.xml b/apm-collector/apm-collector-storage/collector-storage-define/pom.xml index 3411fc80a..9d91ad81d 100644 --- a/apm-collector/apm-collector-storage/collector-storage-define/pom.xml +++ b/apm-collector/apm-collector-storage/collector-storage-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-storage org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml b/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml index d4ab6ac60..c8211ba7e 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-storage org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java index 37fe9c464..f614bbef9 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/skywalking/apm/collector/storage/es/DataTTLKeeperTimer.java @@ -19,8 +19,6 @@ package org.skywalking.apm.collector.storage.es; import java.util.Calendar; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.dao.ICpuMetricPersistenceDAO; diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml b/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml index 6b9093bb5..5848f3d91 100644 --- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml +++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-storage org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-storage/pom.xml b/apm-collector/apm-collector-storage/pom.xml index 2bc215c7e..4caaae7f5 100644 --- a/apm-collector/apm-collector-storage/pom.xml +++ b/apm-collector/apm-collector-storage/pom.xml @@ -5,7 +5,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -34,4 +34,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-stream/pom.xml b/apm-collector/apm-collector-stream/pom.xml index 41859a26d..f64ea1979 100644 --- a/apm-collector/apm-collector-stream/pom.xml +++ b/apm-collector/apm-collector-stream/pom.xml @@ -23,7 +23,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -57,4 +57,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-ui/collector-ui-define/pom.xml b/apm-collector/apm-collector-ui/collector-ui-define/pom.xml index 3de7600b9..5b020b8e9 100644 --- a/apm-collector/apm-collector-ui/collector-ui-define/pom.xml +++ b/apm-collector/apm-collector-ui/collector-ui-define/pom.xml @@ -23,7 +23,7 @@ apm-collector-ui org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml index 1480ae870..b36443997 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml @@ -23,7 +23,7 @@ apm-collector-ui org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -62,4 +62,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/apm-collector-ui/pom.xml b/apm-collector/apm-collector-ui/pom.xml index ccdeed092..8fdaefc98 100644 --- a/apm-collector/apm-collector-ui/pom.xml +++ b/apm-collector/apm-collector-ui/pom.xml @@ -5,7 +5,7 @@ apm-collector org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -23,4 +23,4 @@ ${project.version} - \ No newline at end of file + diff --git a/apm-collector/pom.xml b/apm-collector/pom.xml index 35ecc7398..5dddc615e 100644 --- a/apm-collector/pom.xml +++ b/apm-collector/pom.xml @@ -23,7 +23,7 @@ apm org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-commons/apm-datacarrier/pom.xml b/apm-commons/apm-datacarrier/pom.xml index 92f452dd5..bd85db71a 100644 --- a/apm-commons/apm-datacarrier/pom.xml +++ b/apm-commons/apm-datacarrier/pom.xml @@ -23,7 +23,7 @@ apm-commons org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-commons/apm-util/pom.xml b/apm-commons/apm-util/pom.xml index 6dda94a57..69551e0e8 100644 --- a/apm-commons/apm-util/pom.xml +++ b/apm-commons/apm-util/pom.xml @@ -21,7 +21,7 @@ apm-commons org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-commons/pom.xml b/apm-commons/pom.xml index 424427c72..7d54d24aa 100644 --- a/apm-commons/pom.xml +++ b/apm-commons/pom.xml @@ -21,7 +21,7 @@ apm org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-network/pom.xml b/apm-network/pom.xml index bafe21453..da316956d 100644 --- a/apm-network/pom.xml +++ b/apm-network/pom.xml @@ -23,7 +23,7 @@ apm org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml index 8bcaf1e03..8cca0d674 100644 --- a/apm-sniffer/apm-agent-core/pom.xml +++ b/apm-sniffer/apm-agent-core/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm-sniffer - 3.3.0-2017 + 3.2.6-2017 apm-agent-core diff --git a/apm-sniffer/apm-agent/pom.xml b/apm-sniffer/apm-agent/pom.xml index d62b3673c..1480e49fd 100644 --- a/apm-sniffer/apm-agent/pom.xml +++ b/apm-sniffer/apm-agent/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm-sniffer - 3.3.0-2017 + 3.2.6-2017 apm-agent diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml index b7596e805..2104765d3 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml index 929d4ff0b..54645ef0f 100644 --- a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml @@ -5,7 +5,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml index a888b8121..0efcb2934 100644 --- a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml index daa0c5df4..09fa6c427 100644 --- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 apm-grpc-1.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml index d8930b18e..812c6d641 100755 --- a/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml index 415900642..9d0d211c0 100644 --- a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 apm-httpClient-4.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml b/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml index bb30f7e7c..3b0502d82 100755 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml index a9009abaa..280874592 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 apm-jedis-2.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml index ed18ab4a3..42cbb3023 100644 --- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml @@ -21,7 +21,7 @@ jetty-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml index 916c70d4e..4608aa61a 100644 --- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml @@ -21,7 +21,7 @@ jetty-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml index 29ecd7e1e..15ca8aab0 100644 --- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 jetty-plugins diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml index fc9c7519a..a5dbc31e0 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml @@ -25,7 +25,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 @@ -69,4 +69,4 @@ - \ No newline at end of file + diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml index a5a4bf6c7..3e90988bc 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml @@ -22,7 +22,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 apm-mongodb-3.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml index 40b3e67c2..f5be2494b 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml index ef20bcc36..cb02587dd 100755 --- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml index 4af95a27c..011c52d1c 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml @@ -21,7 +21,7 @@ nutz-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml index 4ad215257..bd87525e8 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml @@ -21,7 +21,7 @@ nutz-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml index 55f1c8d5e..20baa63cf 100644 --- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 nutz-plugins diff --git a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml index 640e7896b..755c3cffa 100644 --- a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml index b3a766b9b..b986e79f6 100755 --- a/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/oracle-10.x-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml index 56db2cbec..3ba61f041 100644 --- a/apm-sniffer/apm-sdk-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sniffer - 3.3.0-2017 + 3.2.6-2017 apm-sdk-plugin diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml index afb53be0a..b3967aec1 100755 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml index 27c229d94..9a7095da3 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/pom.xml @@ -25,7 +25,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 apm-resin-3.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml index 6b96dd0dd..71d2b8f05 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/pom.xml @@ -25,7 +25,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 apm-resin-4.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml index 76977bd2f..c7da438b8 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml @@ -23,7 +23,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml index 0694f35b7..44976927f 100644 --- a/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml @@ -23,7 +23,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml index ff4aa2760..453165956 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml @@ -21,7 +21,7 @@ spring-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml index 8a54de602..9fd7124e6 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml @@ -23,7 +23,7 @@ spring-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml index 4d13789f7..7c9cb95b4 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml @@ -21,7 +21,7 @@ spring-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml index 90f78f650..d59f27b4d 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml @@ -21,7 +21,7 @@ spring-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml index d6f934a5b..87bdc4034 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 spring-plugins diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml index 53a8eeeba..d31f17570 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml @@ -21,7 +21,7 @@ spring-plugins org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml index dd289f4ef..d07d8a494 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml @@ -24,7 +24,7 @@ org.skywalking spring-cloud - 3.3.0-2017 + 3.2.6-2017 netflix-plugins diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml index 232969584..3a357b16e 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking netflix-plugins - 3.3.0-2017 + 3.2.6-2017 apm-spring-cloud-feign-1.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml index 9ba620471..f221914a3 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml @@ -24,7 +24,7 @@ org.skywalking spring-plugins - 3.3.0-2017 + 3.2.6-2017 spring-cloud diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml index 730981614..6a6060280 100644 --- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml @@ -24,7 +24,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 apm-spymemcached-2.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml index cd1015318..386a93617 100644 --- a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml index 8452dee90..e30e30380 100644 --- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml @@ -21,7 +21,7 @@ apm-sdk-plugin org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml index 4e43bdb77..f0b78590e 100644 --- a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm-sdk-plugin - 3.3.0-2017 + 3.2.6-2017 apm-xmemcached-2.x-plugin diff --git a/apm-sniffer/apm-test-tools/pom.xml b/apm-sniffer/apm-test-tools/pom.xml index a8438029a..5a68afa74 100644 --- a/apm-sniffer/apm-test-tools/pom.xml +++ b/apm-sniffer/apm-test-tools/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm-sniffer - 3.3.0-2017 + 3.2.6-2017 apm-test-tools diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml index 734621e65..c1e19d104 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml @@ -23,7 +23,7 @@ apm-toolkit-activation org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml index 88cab4baf..38df454f7 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml @@ -23,7 +23,7 @@ apm-toolkit-activation org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml index a7ba9cd07..3ec6ccade 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml @@ -23,7 +23,7 @@ apm-toolkit-activation org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml index 550a18432..11c91eadd 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml @@ -23,7 +23,7 @@ apm-toolkit-activation org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml index 4e1a3854f..aa2f8d741 100644 --- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml +++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml @@ -23,7 +23,7 @@ apm-toolkit-activation org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/apm-sniffer/apm-toolkit-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/pom.xml index eac10ee37..f8682fceb 100644 --- a/apm-sniffer/apm-toolkit-activation/pom.xml +++ b/apm-sniffer/apm-toolkit-activation/pom.xml @@ -23,7 +23,7 @@ apm-sniffer org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 pom diff --git a/apm-sniffer/pom.xml b/apm-sniffer/pom.xml index bdefb2570..28284292d 100644 --- a/apm-sniffer/pom.xml +++ b/apm-sniffer/pom.xml @@ -23,7 +23,7 @@ apm org.skywalking - 3.3.0-2017 + 3.2.6-2017 4.0.0 diff --git a/docker-compose.yml b/docker-compose.yml index 243f5fa2b..ecbc2ae4f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '2.1' services: skywalking-webui: - image: skywalking/skywalking-ui:3.3.0-2017 + image: skywalking/skywalking-ui:3.2.6-2017 expose: - "8080" ports: @@ -15,7 +15,7 @@ services: - COLLECTOR_SERVERS=skywalking-collector:10800 skywalking-collector: - image: skywalking/skywalking-collector:3.3.0-2017 + image: skywalking/skywalking-collector:3.2.6-2017 expose: - "10800" - "11800" diff --git a/docs/Supported-list.md b/docs/Supported-list.md index 7439967bb..54b5744dc 100644 --- a/docs/Supported-list.md +++ b/docs/Supported-list.md @@ -19,7 +19,7 @@ * Mysql Driver 5.x, 6.x * Oracle Driver * H2 Driver - * [Sharding-JDBC 1.5.x](https://github.com/shardingjdbc/sharding-jdbc) + * [Sharding-JDBC](https://github.com/shardingjdbc/sharding-jdbc) 1.5.x * PostgreSQL Driver 8.x, 9.x, 42.x * RPC Frameworks * [Dubbo](https://github.com/alibaba/dubbo) 2.5.3 @@ -39,6 +39,8 @@ * [Netflix Eureka](https://github.com/Netflix/eureka) * Spring Ecosystem * Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x +* Scheduler + * [Elastic Job](https://github.com/elasticjob/elastic-job) 2.x * OpenTracing community supported * Motan * Hprose-java diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 18854876c..000000000 --- a/docs/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-midnight \ No newline at end of file diff --git a/pom.xml b/pom.xml index da91cc79b..69132e48d 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.skywalking apm - 3.3.0-2017 + 3.2.6-2017