diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b75ff97cd..000000000 --- a/.gitignore +++ /dev/null @@ -1,53 +0,0 @@ -*.class - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -.idea/ -samples/skywalking-auth/skywalking-auth.iml -samples/skywalking-auth/target/ -skywalking-alarm/skywalking-alarm.iml -skywalking-alarm/target/ -skywalking-analysis/skywalking-analysis.iml -skywalking-analysis/target/ -skywalking-collector/skywalking-agent/dependency-reduced-pom.xml -skywalking-collector/skywalking-agent/skywalking-agent.iml -skywalking-collector/skywalking-agent/target/ -skywalking-collector/skywalking-api/skywalking-api.iml -skywalking-collector/skywalking-collector.iml -skywalking-collector/skywalking-log/example/example.iml -skywalking-collector/skywalking-log/log4j-1.x-plugin/skywalking-log4j-1.x-plugin.iml -skywalking-collector/skywalking-log/log4j-2.x-plugin/skywalking-log4j-2.x-plugin.iml -skywalking-collector/skywalking-log/skywalking-log.iml -skywalking-collector/skywalking-protocol/skywalking-protocol.iml -skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/skywalking-dubbo-plugin.iml -skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/target/ -skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/skywalking-httpClient-4.x-plugin.iml -skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/target/ -skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/skywalking-jdbc-plugin.iml -skywalking-sdk-plugin/jdbc-plugin/target/ -skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/skywalking-jedis-2.x-plugin.iml -skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/target/ -skywalking-collector/skywalking-sdk-plugin/spring-plugin/skywalking-spring-plugin.iml -skywalking-collector/skywalking-sdk-plugin/spring-plugin/target/ -skywalking-collector/skywalking-sdk-plugin/web-plugin/skywalking-web-plugin.iml -skywalking-collector/skywalking-sdk-plugin/web-plugin/target/ -skywalking-server/target/ -skywalking-webui/skywalking-webui.iml -skywalking.iml -test/skywalking-agent-test/.idea/ -test/skywalking-agent-test/dubbo-test/ -test/skywalking-agent-test/jdbc-test/jdbc-test.iml -test/skywalking-agent-test/redis-test/redis-test.iml -test/skywalking-test-api/skywalking-test-api.iml -test/skywalking-test-api/target/ -skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/target/ -.gitignore -skywalking-collector/skywalking-log/logback-plugin/logback-plugin.iml diff --git a/skywalking-collector/skywalking-agent/pom.xml b/skywalking-collector/skywalking-agent/pom.xml index d53b263fb..835007bbc 100644 --- a/skywalking-collector/skywalking-agent/pom.xml +++ b/skywalking-collector/skywalking-agent/pom.xml @@ -23,6 +23,10 @@ com.ai.cloud.skywalking.api.dependencies.io.netty com.google.protobuf com.ai.cloud.skywalking.api.dependencies.google.protobuf + javassist + com.ai.cloud.skywalking.api.dependencies.javassist + com.google.gson + com.ai.cloud.skywalking.api.dependencies.com.google.gson @@ -46,6 +50,11 @@ skywalking-dubbo-plugin 1.0-Final + + com.ai.cloud + tomcat-8.x-plugin + 1.0-Final + @@ -88,6 +97,14 @@ ${shade.com.google.protobuf.source} ${shade.com.google.protobuf.target} + + ${shade.javassist.source} + ${shade.javassist.target} + + + ${shade.com.google.gson.source} + ${shade.com.google.gson.target} + diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/BaseInvokeMonitor.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/BaseInvokeMonitor.java index 53e9db343..5209082e7 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/BaseInvokeMonitor.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/BaseInvokeMonitor.java @@ -32,12 +32,10 @@ public abstract class BaseInvokeMonitor { } - if (!spanData.isValidate()) { - // 根据SpanData生成RequestSpan,并保存 - ContextBuffer.save(RequestSpan.RequestSpanBuilder. - newBuilder(spanData).callType(id.getCallType()).viewPoint(id.getViewPoint()) - .spanTypeDesc(id.getSpanTypeDesc()).build()); - } + // 根据SpanData生成RequestSpan,并保存 + ContextBuffer.save(RequestSpan.RequestSpanBuilder. + newBuilder(spanData).callType(id.getCallType()).viewPoint(id.getViewPoint()) + .spanTypeDesc(id.getSpanTypeDesc()).build()); // 将新创建的Context存放到ThreadLocal栈中。 CurrentThreadSpanStack.push(spanData); @@ -56,10 +54,6 @@ public abstract class BaseInvokeMonitor { // 弹出上下文的栈顶中的元素 Span spanData = CurrentThreadSpanStack.pop(); - if (spanData == null || spanData.isValidate()) { - return; - } - spanData.setInvokeResult(invokeResult); if (Config.BuriedPoint.PRINTF) { diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/RPCServerInvokeMonitor.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/RPCServerInvokeMonitor.java index 1d6c48956..60109ab65 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/RPCServerInvokeMonitor.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/invoke/monitor/RPCServerInvokeMonitor.java @@ -25,8 +25,6 @@ public class RPCServerInvokeMonitor extends BaseInvokeMonitor { // 设置是否为接收端 spanData.setSpanType(SpanType.RPC_SERVER); - invalidateAllSpanIfIsNotFirstSpan(spanData); - super.beforeInvoke(spanData, id); } catch (Throwable t) { logger.error(t.getMessage(), t); @@ -42,9 +40,4 @@ public class RPCServerInvokeMonitor extends BaseInvokeMonitor { super.occurException(th); } - private void invalidateAllSpanIfIsNotFirstSpan(Span spanData) { - if (!CurrentThreadSpanStack.peek().getTraceId().equals(spanData.getTraceId())) { - CurrentThreadSpanStack.invalidatePresentSpans(); - } - } } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/assist/SimpleObjectFirstInvokeInterceptor.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/assist/SimpleObjectFirstInvokeInterceptor.java index 3cf284118..58bd5eda1 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/assist/SimpleObjectFirstInvokeInterceptor.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/assist/SimpleObjectFirstInvokeInterceptor.java @@ -4,7 +4,7 @@ import java.util.concurrent.atomic.AtomicInteger; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; import com.ai.cloud.skywalking.plugin.interceptor.InterceptorException; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; /** * 用于首次拦截方法调用,避免方法内部的方法调用被多次拦截。 @@ -12,7 +12,7 @@ import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundIn * @author wusheng * */ -public abstract class SimpleObjectFirstInvokeInterceptor implements IntanceMethodsAroundInterceptor { +public abstract class SimpleObjectFirstInvokeInterceptor implements InstanceMethodsAroundInterceptor { protected String invokeCounterKey = "__$invokeCounterKey"; protected Object invokeCounterInstLock = new Object(); diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassConstructorInterceptor.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassConstructorInterceptor.java index bd6ec2434..c85d925bc 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassConstructorInterceptor.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassConstructorInterceptor.java @@ -13,9 +13,9 @@ public class ClassConstructorInterceptor { private static Logger logger = LogManager .getLogger(ClassConstructorInterceptor.class); - private IntanceMethodsAroundInterceptor interceptor; + private InstanceMethodsAroundInterceptor interceptor; - public ClassConstructorInterceptor(IntanceMethodsAroundInterceptor interceptor) { + public ClassConstructorInterceptor(InstanceMethodsAroundInterceptor interceptor) { this.interceptor = interceptor; } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassEnhancePluginDefine.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassEnhancePluginDefine.java index 1a50361a4..28d55a313 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassEnhancePluginDefine.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassEnhancePluginDefine.java @@ -52,9 +52,9 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * 2.intercept constructor by default, and intercept method which it's * required by interceptorDefineClass.
*/ - IntanceMethodsAroundInterceptor interceptor = getInstanceMethodsInterceptor(); + InstanceMethodsAroundInterceptor interceptor = getInstanceMethodsInterceptor(); if (interceptor == null) { - throw new EnhanceException("no IntanceMethodsAroundInterceptor instance. "); + throw new EnhanceException("no InstanceMethodsAroundInterceptor instance. "); } newClassBuilder = newClassBuilder @@ -116,7 +116,7 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * * @return */ - protected abstract IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor(); + protected abstract InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor(); private DynamicType.Builder enhanceClass(String enhanceOriginClassName, DynamicType.Builder newClassBuilder) throws PluginException { diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java index 1403ac56f..04f4d05fd 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassInstanceMethodsInterceptor.java @@ -17,9 +17,9 @@ public class ClassInstanceMethodsInterceptor { private static Logger logger = LogManager .getLogger(ClassInstanceMethodsInterceptor.class); - private IntanceMethodsAroundInterceptor interceptor; + private InstanceMethodsAroundInterceptor interceptor; - public ClassInstanceMethodsInterceptor(IntanceMethodsAroundInterceptor interceptor) { + public ClassInstanceMethodsInterceptor(InstanceMethodsAroundInterceptor interceptor) { this.interceptor = interceptor; } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java index c0860890d..3629ab318 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/ClassStaticMethodsEnhancePluginDefine.java @@ -17,7 +17,7 @@ public abstract class ClassStaticMethodsEnhancePluginDefine extends } @Override - protected IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + protected InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { return null; } } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/IntanceMethodsAroundInterceptor.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java similarity index 92% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/IntanceMethodsAroundInterceptor.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java index c1fd08eaa..1dc45fe7c 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/IntanceMethodsAroundInterceptor.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/enhance/InstanceMethodsAroundInterceptor.java @@ -2,7 +2,7 @@ package com.ai.cloud.skywalking.plugin.interceptor.enhance; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; -public interface IntanceMethodsAroundInterceptor { +public interface InstanceMethodsAroundInterceptor { public void onConstruct(EnhancedClassInstanceContext context, ConstructorInvokeContext interceptorContext); public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, MethodInterceptResult result); diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/protocol/util/ContextGenerator.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/protocol/util/ContextGenerator.java index 719e98c75..45267faca 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/protocol/util/ContextGenerator.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/protocol/util/ContextGenerator.java @@ -59,14 +59,6 @@ public final class ContextGenerator { // LevelId是由SpanNode类的nextSubSpanLevelId字段进行初始化的. // 所以在这里不需要初始化 span = new Span(parentSpan.getTraceId(), Config.SkyWalking.APPLICATION_CODE, Config.SkyWalking.USER_ID); - - // check parent span is RPC span - // if true, current span is invalidate and current span also belong to RPC span - if (parentSpan.isRPCClientSpan()) { - span.setSpanType(SpanType.RPC_CLIENT); - span.setValidate(false); - } - if (!StringUtil.isEmpty(parentSpan.getParentLevel())) { span.setParentLevel(parentSpan.getParentLevel() + "." + parentSpan.getLevelId()); } else { diff --git a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestAroundInterceptor.java b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestAroundInterceptor.java index e3b565442..24523e994 100644 --- a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestAroundInterceptor.java +++ b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestAroundInterceptor.java @@ -3,13 +3,13 @@ package test.ai.cloud.matcher; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.enhance.MethodInterceptResult; /** * Created by xin on 16-6-8. */ -public class TestAroundInterceptor implements IntanceMethodsAroundInterceptor { +public class TestAroundInterceptor implements InstanceMethodsAroundInterceptor { @Override public void onConstruct(EnhancedClassInstanceContext context, ConstructorInvokeContext interceptorContext) { diff --git a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestMatcherDefine.java b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestMatcherDefine.java index b092b7ce7..9c424f7c4 100644 --- a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestMatcherDefine.java +++ b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/matcher/TestMatcherDefine.java @@ -2,7 +2,7 @@ package test.ai.cloud.matcher; import com.ai.cloud.skywalking.plugin.interceptor.MethodMatcher; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.matcher.PrivateMethodMatcher; /** @@ -28,7 +28,7 @@ public class TestMatcherDefine extends ClassInstanceMethodsEnhancePluginDefine { } @Override - protected IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + protected InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { return new TestAroundInterceptor(); } } diff --git a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestAroundInterceptor.java b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestAroundInterceptor.java index 6c9cb5e4b..7e146e9da 100644 --- a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestAroundInterceptor.java +++ b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestAroundInterceptor.java @@ -3,10 +3,10 @@ package test.ai.cloud.plugin; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.enhance.MethodInterceptResult; -public class TestAroundInterceptor implements IntanceMethodsAroundInterceptor { +public class TestAroundInterceptor implements InstanceMethodsAroundInterceptor { @Override public void onConstruct(EnhancedClassInstanceContext context, ConstructorInvokeContext interceptorContext) { diff --git a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestInterceptorDefine.java b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestInterceptorDefine.java index c18b13e8b..ae0b805c4 100644 --- a/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestInterceptorDefine.java +++ b/skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/plugin/TestInterceptorDefine.java @@ -2,7 +2,7 @@ package test.ai.cloud.plugin; import com.ai.cloud.skywalking.plugin.interceptor.MethodMatcher; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassEnhancePluginDefine; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.enhance.StaticMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher; @@ -19,7 +19,7 @@ public class TestInterceptorDefine extends ClassEnhancePluginDefine { } @Override - public IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + public InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { return new TestAroundInterceptor(); } diff --git a/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java b/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java index 6c33426a9..c5ad51438 100644 --- a/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java +++ b/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java @@ -8,10 +8,10 @@ import com.ai.cloud.skywalking.model.Identification; import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext; import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.enhance.MethodInterceptResult; -public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterceptor { +public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterceptor { /** * default headname of sky walking context
*/ diff --git a/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/define/HttpClientPluginDefine.java b/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/define/HttpClientPluginDefine.java index ed396d9e6..989516e66 100644 --- a/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/define/HttpClientPluginDefine.java +++ b/skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/ai/cloud/skywalking/httpClient/v4/plugin/define/HttpClientPluginDefine.java @@ -3,12 +3,12 @@ package com.ai.cloud.skywalking.httpClient.v4.plugin.define; import com.ai.cloud.skywalking.httpClient.v4.plugin.HttpClientExecuteInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; public abstract class HttpClientPluginDefine extends ClassInstanceMethodsEnhancePluginDefine { @Override - public IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + public InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { return new HttpClientExecuteInterceptor(); } diff --git a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/pom.xml b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/pom.xml index e73955bde..3d2605d74 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/pom.xml +++ b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/pom.xml @@ -20,12 +20,6 @@ - - com.ai.cloud - skywalking-api - 1.0-Final - - redis.clients jedis diff --git a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisClusterPluginDefine.java b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisClusterPluginDefine.java index 63fdd97c3..6cbde6252 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisClusterPluginDefine.java +++ b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisClusterPluginDefine.java @@ -3,7 +3,7 @@ package com.ai.cloud.skywalking.jedis.v2.plugin.define; import com.ai.cloud.skywalking.jedis.v2.plugin.JedisClusterInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.MethodMatcher; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.matcher.AnyMethodsMatcher; public class JedisClusterPluginDefine extends ClassInstanceMethodsEnhancePluginDefine { @@ -21,7 +21,7 @@ public class JedisClusterPluginDefine extends ClassInstanceMethodsEnhancePluginD } @Override - public IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + public InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { return new JedisClusterInterceptor(); } } diff --git a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java index 8ce663b75..a645fa08e 100644 --- a/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java +++ b/skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java @@ -3,7 +3,7 @@ package com.ai.cloud.skywalking.jedis.v2.plugin.define; import com.ai.cloud.skywalking.jedis.v2.plugin.JedisInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.MethodMatcher; import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; -import com.ai.cloud.skywalking.plugin.interceptor.enhance.IntanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import com.ai.cloud.skywalking.plugin.interceptor.matcher.MethodsExclusiveMatcher; import com.ai.cloud.skywalking.plugin.interceptor.matcher.PrivateMethodMatcher; import com.ai.cloud.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher; @@ -32,7 +32,7 @@ public class JedisPluginDefine extends ClassInstanceMethodsEnhancePluginDefine { } @Override - public IntanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + public InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { return new JedisInterceptor(); } diff --git a/skywalking-collector/skywalking-sdk-plugin/pom.xml b/skywalking-collector/skywalking-sdk-plugin/pom.xml index c99ea31cc..49dfc2c4b 100644 --- a/skywalking-collector/skywalking-sdk-plugin/pom.xml +++ b/skywalking-collector/skywalking-sdk-plugin/pom.xml @@ -17,6 +17,7 @@ web-plugin httpClient-4.x-plugin jedis-2.x-plugin + tomcat-7.x-8.x-plugin pom @@ -35,6 +36,11 @@ 1.0-Final test + + com.ai.cloud + skywalking-api + 1.0-Final + diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml new file mode 100644 index 000000000..3fd222ca0 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml @@ -0,0 +1,53 @@ + + + skywalking-sdk-plugin + com.ai.cloud + 1.0-Final + + 4.0.0 + + tomcat-7.x-8.x-plugin + jar + + tomcat-7.x-8.x-plugin + http://maven.apache.org + + + UTF-8 + 8.0.36 + + + + + junit + junit + 4.12 + test + + + org.apache.tomcat.embed + tomcat-embed-core + ${tomcat.version} + provided + + + org.apache.tomcat.embed + tomcat-embed-logging-juli + ${tomcat.version} + test + + + org.apache.tomcat.embed + tomcat-embed-jasper + ${tomcat.version} + test + + + org.apache.httpcomponents + httpclient + 4.5.2 + test + + + diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/TomcatPluginInterceptor.java b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/TomcatPluginInterceptor.java new file mode 100644 index 000000000..e1f709ae4 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/TomcatPluginInterceptor.java @@ -0,0 +1,72 @@ +package com.ai.cloud.skywalking.plugin.tomcat78x; + +import com.ai.cloud.skywalking.api.Tracing; +import com.ai.cloud.skywalking.invoke.monitor.RPCServerInvokeMonitor; +import com.ai.cloud.skywalking.model.ContextData; +import com.ai.cloud.skywalking.model.Identification; +import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.MethodInterceptResult; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class TomcatPluginInterceptor implements InstanceMethodsAroundInterceptor { + private final String secondKey = "ContextData"; + private String tracingName = DEFAULT_TRACE_NAME; + private static final String DEFAULT_TRACE_NAME = "SkyWalking-TRACING-NAME"; + private static final String TRACE_ID_HEADER_NAME = "SW-TraceId"; + + @Override + public void onConstruct(EnhancedClassInstanceContext context, ConstructorInvokeContext interceptorContext) { + //DO Nothing + } + + @Override + public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, MethodInterceptResult result) { + Object[] args = interceptorContext.allArguments(); + HttpServletRequest requests = (HttpServletRequest) args[0]; + String tracingHeaderValue = requests.getHeader(tracingName); + ContextData contextData = null; + if (tracingHeaderValue != null) { + String contextDataStr = null; + int index = tracingHeaderValue.indexOf("="); + if (index > 0) { + String key = tracingHeaderValue.substring(0, index); + if (secondKey.equals(key)) { + contextDataStr = tracingHeaderValue.substring(index + 1); + } + } + + if (contextDataStr != null && contextDataStr.length() > 0) { + contextData = new ContextData(contextDataStr); + } + } + RPCServerInvokeMonitor rpcServerInvokeMonitor = new RPCServerInvokeMonitor(); + rpcServerInvokeMonitor.beforeInvoke(contextData, generateIdentification(requests)); + } + + + private Identification generateIdentification(HttpServletRequest request) { + return Identification.newBuilder() + .viewPoint(request.getRequestURL().toString()) + .spanType(WebBuriedPointType.instance()) + .build(); + } + + + @Override + public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { + Object[] args = interceptorContext.allArguments(); + HttpServletResponse httpServletResponse = (HttpServletResponse) args[1]; + httpServletResponse.addHeader(TRACE_ID_HEADER_NAME, Tracing.getTraceId()); + return ret; + } + + @Override + public void handleMethodException(Throwable t, EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { + // DO Nothing + } +} diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/WebBuriedPointType.java b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/WebBuriedPointType.java new file mode 100644 index 000000000..0e1957257 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/WebBuriedPointType.java @@ -0,0 +1,31 @@ +package com.ai.cloud.skywalking.plugin.tomcat78x; + +import com.ai.cloud.skywalking.api.IBuriedPointType; +import com.ai.cloud.skywalking.protocol.common.CallType; + +public class WebBuriedPointType implements IBuriedPointType { + + private static WebBuriedPointType webBuriedPointType; + + public static IBuriedPointType instance() { + if (webBuriedPointType == null) { + webBuriedPointType = new WebBuriedPointType(); + } + + return webBuriedPointType; + } + + @Override + public String getTypeName() { + return "W"; + } + + @Override + public CallType getCallType() { + return CallType.SYNC; + } + + private WebBuriedPointType() { + // Non + } +} diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java new file mode 100644 index 000000000..5e3de1440 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java @@ -0,0 +1,27 @@ +package com.ai.cloud.skywalking.plugin.tomcat78x.define; + +import com.ai.cloud.skywalking.plugin.interceptor.MethodMatcher; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine; +import com.ai.cloud.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; +import com.ai.cloud.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher; +import com.ai.cloud.skywalking.plugin.tomcat78x.TomcatPluginInterceptor; +import org.apache.catalina.connector.Request; +import org.apache.catalina.connector.Response; + +public class TomcatPluginDefine extends ClassInstanceMethodsEnhancePluginDefine { + @Override + protected MethodMatcher[] getInstanceMethodsMatchers() { + + return new MethodMatcher[]{new SimpleMethodMatcher("invoke", Request.class, Response.class)}; + } + + @Override + protected InstanceMethodsAroundInterceptor getInstanceMethodsInterceptor() { + return new TomcatPluginInterceptor(); + } + + @Override + protected String enhanceClassName() { + return "org.apache.catalina.core.StandardEngineValve"; + } +} diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/resources/skywalking-plugin.def b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/resources/skywalking-plugin.def new file mode 100644 index 000000000..0e95388d3 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/resources/skywalking-plugin.def @@ -0,0 +1 @@ +com.ai.cloud.skywalking.plugin.tomcat78x.define.TomcatPluginDefine diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/EmbedTomcat.java b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/EmbedTomcat.java new file mode 100644 index 000000000..7949ee362 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/EmbedTomcat.java @@ -0,0 +1,39 @@ +package test.com.ai.cloud.skywalking.plugin.tomcat78x; + +import org.apache.catalina.LifecycleException; +import org.apache.catalina.WebResourceRoot; +import org.apache.catalina.core.StandardContext; +import org.apache.catalina.startup.Tomcat; +import org.apache.catalina.webresources.DirResourceSet; +import org.apache.catalina.webresources.StandardRoot; +import org.junit.Test; + +import javax.servlet.ServletException; +import java.io.File; + +public class EmbedTomcat { + + @Test + public void testGetResourcePath(){ + System.out.println(EmbedTomcat.class.getResource("/").getPath()); + } + + @Test + public void testStartTomcat() throws ServletException, LifecycleException { + start(); + } + + public static void start() throws ServletException, LifecycleException { + String webappDirLocation = EmbedTomcat.class.getResource("/").getPath() + "webapp/"; + Tomcat tomcat = new Tomcat(); + tomcat.setPort(8080); + + StandardContext standardContext = (StandardContext) tomcat.addWebapp("/",new File(webappDirLocation).getAbsolutePath()); + File additionWebInfClasses = new File(EmbedTomcat.class.getResource("/").getPath()); + WebResourceRoot resourceRoot = new StandardRoot(standardContext); + resourceRoot.addPreResources(new DirResourceSet(resourceRoot,"/WEB-INF/classes", additionWebInfClasses.getAbsolutePath(), "/")); + standardContext.setResources(resourceRoot); + + tomcat.start(); + } +} diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/TomcatPluginTest.java b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/TomcatPluginTest.java new file mode 100644 index 000000000..ecc280db4 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/TomcatPluginTest.java @@ -0,0 +1,62 @@ +package test.com.ai.cloud.skywalking.plugin.tomcat78x; + +import com.ai.cloud.skywalking.plugin.TracingBootstrap; +import com.ai.skywalking.testframework.api.RequestSpanAssert; +import org.apache.catalina.LifecycleException; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.junit.Test; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; + +public class TomcatPluginTest { + + @Test + public void test() throws InvocationTargetException, NoSuchMethodException, ClassNotFoundException, IllegalAccessException { + TracingBootstrap + .main(new String[]{TomcatPluginTest.class.getName()}); + } + + public static void main(String[] args) throws ServletException, LifecycleException, IOException, InterruptedException { + // start tomcat + EmbedTomcat.start(); + // curl httpclient + visitURL("http://127.0.0.1:8080/hello"); + // assert client + RequestSpanAssert.assertEquals(new String[][]{ + {"0", "http://127.0.0.1:8080/hello" , ""} + }); + } + + public static void visitURL(String url) throws IOException { + CloseableHttpClient httpclient = HttpClients.createDefault(); + try { + HttpGet httpget = new HttpGet(url); + ResponseHandler responseHandler = new ResponseHandler() { + @Override + public String handleResponse( + final HttpResponse response) throws ClientProtocolException, IOException { + int status = response.getStatusLine().getStatusCode(); + if (status >= 200 && status < 300) { + HttpEntity entity = response.getEntity(); + return entity != null ? EntityUtils.toString(entity) : null; + } else { + throw new ClientProtocolException("Unexpected response status: " + status); + } + } + + }; + String responseBody = httpclient.execute(httpget, responseHandler); + } finally { + httpclient.close(); + } + } +} diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/servlet/HelloServlet.java b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/servlet/HelloServlet.java new file mode 100644 index 000000000..8cc0a1d00 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/test/com/ai/cloud/skywalking/plugin/tomcat78x/servlet/HelloServlet.java @@ -0,0 +1,23 @@ +package test.com.ai.cloud.skywalking.plugin.tomcat78x.servlet; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Created by xin on 16/7/22. + */ +@WebServlet( + name="myServlet", + urlPatterns = {"/hello"} +) +public class HelloServlet extends HttpServlet{ + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + System.out.println("Hello World"); + } +} diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/resources/sky-walking.auth b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/resources/sky-walking.auth new file mode 100644 index 000000000..ff0b6dcf1 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/resources/sky-walking.auth @@ -0,0 +1,45 @@ +#skyWalking用户ID +skywalking.user_id=123 +#skyWalking应用编码 +skywalking.application_code=test +#skywalking auth的环境变量名字 +skywalking.auth_system_env_name=SKYWALKING_RUN +#skywalking数据编码 +skywalking.charset=UTF-8 +skywalking.auth_override=true + +#是否打印数据 +buriedpoint.printf=true +#埋点异常的最大长度 +buriedpoint.max_exception_stack_length=4000 +#业务字段的最大长度 +buriedpoint.businesskey_max_length=300 +#过滤异常 +buriedpoint.exclusive_exceptions=java.lang.RuntimeException + +#最大发送者的连接数阀比例 +sender.connect_percent=100 +#发送服务端配置 +sender.servers_addr=127.0.0.1:34000 +#最大发送的副本数量 +sender.max_copy_num=2 +#发送的最大长度 +sender.max_send_length=20000 +#当没有Sender时,尝试获取sender的等待周期 +sender.retry_get_sender_wait_interval=2000 + +#最大消费线程数 +consumer.max_consumer=0 +#消费者最大等待时间 +consumer.max_wait_time=5 +#发送失败等待时间 +consumer.consumer_fail_retry_wait_interval=50 + +#每个Buffer的最大个数 +buffer.buffer_max_size=18000 +#Buffer池的最大长度 +buffer.pool_size=5 + +#发送检查线程检查周期 +senderchecker.check_polling_time=200 + diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/resources/webapp/HelloWorld.jsp b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/resources/webapp/HelloWorld.jsp new file mode 100644 index 000000000..7874157ad --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/resources/webapp/HelloWorld.jsp @@ -0,0 +1,5 @@ + + +

Hello World

+ + \ No newline at end of file diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/classes/skywalking-plugin.def b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/classes/skywalking-plugin.def new file mode 100644 index 000000000..b406779af --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/classes/skywalking-plugin.def @@ -0,0 +1 @@ +com.ai.cloud.skywalking.plugin.tomcat8.define.Tomcat8PluginDefine diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/test-classes/sky-walking.auth b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/test-classes/sky-walking.auth new file mode 100644 index 000000000..ff0b6dcf1 --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/test-classes/sky-walking.auth @@ -0,0 +1,45 @@ +#skyWalking用户ID +skywalking.user_id=123 +#skyWalking应用编码 +skywalking.application_code=test +#skywalking auth的环境变量名字 +skywalking.auth_system_env_name=SKYWALKING_RUN +#skywalking数据编码 +skywalking.charset=UTF-8 +skywalking.auth_override=true + +#是否打印数据 +buriedpoint.printf=true +#埋点异常的最大长度 +buriedpoint.max_exception_stack_length=4000 +#业务字段的最大长度 +buriedpoint.businesskey_max_length=300 +#过滤异常 +buriedpoint.exclusive_exceptions=java.lang.RuntimeException + +#最大发送者的连接数阀比例 +sender.connect_percent=100 +#发送服务端配置 +sender.servers_addr=127.0.0.1:34000 +#最大发送的副本数量 +sender.max_copy_num=2 +#发送的最大长度 +sender.max_send_length=20000 +#当没有Sender时,尝试获取sender的等待周期 +sender.retry_get_sender_wait_interval=2000 + +#最大消费线程数 +consumer.max_consumer=0 +#消费者最大等待时间 +consumer.max_wait_time=5 +#发送失败等待时间 +consumer.consumer_fail_retry_wait_interval=50 + +#每个Buffer的最大个数 +buffer.buffer_max_size=18000 +#Buffer池的最大长度 +buffer.pool_size=5 + +#发送检查线程检查周期 +senderchecker.check_polling_time=200 + diff --git a/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/test-classes/webapp/HelloWorld.jsp b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/test-classes/webapp/HelloWorld.jsp new file mode 100644 index 000000000..7874157ad --- /dev/null +++ b/skywalking-collector/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/target/test-classes/webapp/HelloWorld.jsp @@ -0,0 +1,5 @@ + + +

Hello World

+ + \ No newline at end of file diff --git a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/config/Config.java b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/config/Config.java index b65b583f9..5bcb71690 100644 --- a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/config/Config.java +++ b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/config/Config.java @@ -2,7 +2,7 @@ package com.ai.skywalking.testframework.api.config; public class Config { - public static String BUFFER_POOL_CLASS_NAME = "com.ai.cloud.skywalking.buffer.ContextBuffer$BufferPool"; + public static String BUFFER_POOL_CLASS_NAME = "com.ai.cloud.skywalking.buffer.BufferPool"; public static String BUFFER_GROUP_FIELD_NAME = "bufferGroups";