You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2020/09/13 05:33:52 UTC

[skywalking] branch source-tls updated (a947992 -> 14b0956)

This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a change to branch source-tls
in repository https://gitbox.apache.org/repos/asf/skywalking.git.


    from a947992  Polish code
     add 10fe6b2  fix plugin test (#5456)
     add c89e766  Fix the bug #5443 and add documents for the  local E2E remote debugging. (#5457)
     add 1b5dd9b  Move spring webflux into optional plugin (#5445)
     add 29de696  exception-ignore-plugin (#5426)
     add efd0808  fix jvm heap memory aggregation number to 1048576 (#5473)
     add c408cf9  Alarm support wechat webhook (#5474)
     add 14b0956  Merge branch 'master' into source-tls

No new revisions were added by this update.

Summary of changes:
 .github/workflows/plugins-test.0.yaml              |   2 +
 .../apm/toolkit/trace/IgnoredException.java        |  25 ++--
 .../skywalking/apm/agent/core/conf/Config.java     |  16 ++-
 .../AnnotationMatchExceptionCheckStrategy.java}    |  18 ++-
 .../core/context/status/ExceptionCheckContext.java |  50 +++++++
 .../context/status/ExceptionCheckStrategy.java}    |  13 +-
 .../HierarchyMatchExceptionCheckStrategy.java      |  46 +++++++
 .../context/status/OffExceptionCheckStrategy.java  |  24 ++--
 .../core/context/status/StatusCheckService.java    |  69 ++++++++++
 .../agent/core/context/status/StatusChecker.java   |  90 +++++++++++++
 .../core/context/trace/AbstractTracingSpan.java    |   5 +
 ...ache.skywalking.apm.agent.core.boot.BootService |   3 +-
 .../apm/agent/core/boot/ServiceManagerTest.java    |   2 +-
 .../apm/agent/core/context/ContextManagerTest.java |   2 -
 .../context/status/ExceptionCheckStrategyTest.java |  70 ++++++++++
 .../status/StatusCheckServiceCheckTest.java        |  83 ++++++++++++
 .../core/context/status/StatusCheckerTest.java     |  77 +++++++++++
 .../status/TestAnnotationMatchException.java       |  56 ++++++++
 .../status/TestHierarchyMatchException.java        |  44 ++++++
 .../context/status/TestNamedMatchException.java    |  30 +++--
 .../activemq/ActiveMQConsumerInterceptor.java      |   2 +-
 .../activemq/ActiveMQProducerInterceptor.java      |   2 +-
 .../armeria/Armeria084ClientInterceptor.java       |   2 +-
 .../armeria/Armeria084ServerInterceptor.java       |   2 +-
 .../armeria/Armeria085ServerInterceptor.java       |   2 +-
 .../plugin/armeria/ArmeriaClientInterceptor.java   |   2 +-
 .../plugin/avro/AbstractRequestInterceptor.java    |   2 +-
 .../apm/plugin/avro/ResponderInterceptor.java      |   2 +-
 .../apm/plugin/baidu/brpc/ClientInterceptor.java   |   1 -
 .../apm/plugin/baidu/brpc/ServerInterceptor.java   |   2 -
 .../apm/plugin/canal/CanalInterceptor.java         |   2 +-
 .../java/driver/v3/ClusterConnectInterceptor.java  |   1 -
 ...sultSetFutureGetUninterruptiblyInterceptor.java |   1 -
 ...AndExecuteAsyncWithStatementArgInterceptor.java |   1 -
 .../apm/plugin/asf/dubbo/DubboInterceptor.java     |   1 -
 .../apm/plugin/dubbo/DubboInterceptor.java         |   1 -
 .../plugin/ehcache/v2/EhcacheLockInterceptor.java  |   2 +-
 .../ehcache/v2/EhcacheOperateAllInterceptor.java   |   2 +-
 .../v2/EhcacheOperateElementInterceptor.java       |   2 +-
 .../v2/EhcacheOperateObjectInterceptor.java        |   2 +-
 .../apm/plugin/esjob/JobExecutorInterceptor.java   |   2 +-
 .../elasticjob/ElasticJobExecutorInterceptor.java  |   2 +-
 .../v5/PlainListenableActionFutureInterceptor.java |   2 +-
 .../v5/TransportActionNodeProxyInterceptor.java    |   2 +-
 ...terActionFutureActionGetMethodsInterceptor.java |   2 +-
 ...ClusterClientGetSettingsMethodsInterceptor.java |   6 +-
 .../ClusterClientHealthMethodsInterceptor.java     |   6 +-
 ...ClusterClientPutSettingsMethodsInterceptor.java |   8 +-
 .../IndicesClientCreateMethodsInterceptor.java     |   8 +-
 .../IndicesClientDeleteMethodsInterceptor.java     |   6 +-
 .../RestHighLevelClientGetMethodsInterceptor.java  |   8 +-
 ...RestHighLevelClientIndexMethodsInterceptor.java |   8 +-
 ...estHighLevelClientSearchMethodsInterceptor.java |   8 +-
 ...estHighLevelClientUpdateMethodsInterceptor.java |   8 +-
 ...rtActionNodeProxyExecuteMethodsInterceptor.java |   2 +-
 .../http/v9/DefaultHttpClientInterceptor.java      |   1 -
 .../ClientDestTracingFilterInterceptor.java        |   2 +-
 .../finagle/ClientTracingFilterInterceptor.java    |   3 +-
 .../finagle/ServerTracingFilterInterceptor.java    |   3 +-
 .../apm/plugin/graphql/v12/GraphqlInterceptor.java |   1 -
 .../apm/plugin/graphql/v8/GraphqlInterceptor.java  |   1 -
 .../apm/plugin/graphql/v9/GraphqlInterceptor.java  |   1 -
 .../grpc/v1/client/BlockingCallInterceptor.java    |   2 +-
 .../plugin/grpc/v1/client/TracingClientCall.java   |  14 +-
 .../plugin/grpc/v1/server/TracingServerCall.java   |  10 +-
 .../grpc/v1/server/TracingServerCallListener.java  |   6 +-
 .../apm/plugin/hbase/HTableInterceptor.java        |   1 -
 .../v4/HttpClientExecuteInterceptor.java           |   1 -
 .../v4/wrapper/FutureCallbackWrapper.java          |   2 +-
 .../wrapper/HttpAsyncResponseConsumerWrapper.java  |   2 +-
 .../v3/HttpClientExecuteInterceptor.java           |   2 +-
 .../v1/HystrixCommandGetFallbackInterceptor.java   |   2 +-
 .../hystrix/v1/HystrixCommandRunInterceptor.java   |   2 +-
 .../interceptor/InfluxDBMethodInterceptor.java     |   2 +-
 .../jdbc/ConnectionServiceMethodInterceptor.java   |   2 +-
 .../jdbc/trace/CallableStatementTracing.java       |   1 -
 .../jdbc/trace/PreparedStatementTracing.java       |   1 -
 .../apm/plugin/jdbc/trace/StatementTracing.java    |   1 -
 .../apm/plugin/jdbc/ConnectionTracing.java         |   1 -
 .../plugin/jedis/v2/JedisMethodInterceptor.java    |   1 -
 .../v90/client/SyncHttpRequestSendInterceptor.java |   2 +-
 .../v9/client/SyncHttpRequestSendInterceptor.java  |   2 +-
 .../plugin/jetty/v9/server/HandleInterceptor.java  |   2 +-
 .../apm/plugin/kafka/define/InterceptorMethod.java |   2 +-
 .../plugin/kafka/CallbackAdapterInterceptor.java   |   4 +-
 .../apm/plugin/kafka/CallbackInterceptor.java      |   4 +-
 .../apm/plugin/kafka/KafkaConsumerInterceptor.java |   2 +-
 .../plugin/kafka/SubscribeMethodInterceptor.java   |   2 +-
 .../lettuce/v5/AsyncCommandMethodInterceptor.java  |   2 +-
 .../lettuce/v5/RedisChannelWriterInterceptor.java  |   1 -
 .../apm/plugin/lettuce/v5/SWBiConsumer.java        |   2 +-
 .../apm/plugin/lettuce/v5/SWConsumer.java          |   2 +-
 .../plugin/light4j/HandleRequestInterceptor.java   |   2 +-
 ...PreparedStatementExecuteMethodsInterceptor.java |   2 +-
 .../v2/StatementExecuteMethodsInterceptor.java     |   2 +-
 .../v2/MongoDBCollectionMethodInterceptor.java     |   1 -
 .../v3/interceptor/v30/MongoDBInterceptor.java     |   1 -
 .../v37/MongoDBOperationExecutorInterceptor.java   |   1 -
 .../apm/plugin/motan/MotanConsumerInterceptor.java |   2 -
 .../apm/plugin/motan/MotanProviderInterceptor.java |   2 -
 ...PreparedStatementExecuteMethodsInterceptor.java |   2 +-
 .../mysql/StatementExecuteMethodsInterceptor.java  |   2 +-
 .../NettySocketIOConnectionInterceptor.java        |   2 +-
 .../socketio/NettySocketIOOnEventInterceptor.java  |   2 +-
 .../socketio/NettySocketIORoomInterceptor.java     |   2 +-
 .../nutz/http/sync/SenderSendInterceptor.java      |   2 +-
 .../plugin/nutz/mvc/ActionMethodInterceptor.java   |   2 +-
 .../apm/plugin/okhttp/v3/EnqueueInterceptor.java   |   2 +-
 .../apm/plugin/okhttp/v3/OnFailureInterceptor.java |   4 +-
 .../plugin/okhttp/v3/OnResponseInterceptor.java    |   2 +-
 .../apm/plugin/okhttp/v3/RealCallInterceptor.java  |   1 -
 .../plugin/play/v2x/HttpFiltersInterceptor.java    |   2 +-
 .../apm/plugin/play/v2x/TracingFilter.java         |   2 +-
 ...PreparedStatementExecuteMethodsInterceptor.java |   2 +-
 .../StatementExecuteMethodsInterceptor.java        |   2 +-
 .../plugin/pulsar/PulsarConsumerInterceptor.java   |   2 +-
 .../plugin/pulsar/PulsarProducerInterceptor.java   |   2 +-
 .../apm/plugin/pulsar/SendCallbackInterceptor.java |   4 +-
 .../apm/plugin/quasar/FiberInterceptor.java        |   1 -
 .../rabbitmq/RabbitMQConsumerInterceptor.java      |   2 +-
 .../rabbitmq/RabbitMQProducerInterceptor.java      |   2 +-
 .../v3/RedisConnectionMethodInterceptor.java       |   1 -
 .../SynchronousDispatcherExceptionInterceptor.java |   4 +-
 .../server/SynchronousDispatcherInterceptor.java   |   2 +-
 .../v3/AbstractMessageConsumeInterceptor.java      |   2 +-
 .../plugin/rocketMQ/v3/MessageSendInterceptor.java |   2 +-
 .../plugin/rocketMQ/v3/OnExceptionInterceptor.java |   2 +-
 .../plugin/rocketMQ/v3/OnSuccessInterceptor.java   |   2 +-
 .../v4/AbstractMessageConsumeInterceptor.java      |   2 +-
 .../plugin/rocketMQ/v4/MessageSendInterceptor.java |   2 +-
 .../plugin/rocketMQ/v4/OnExceptionInterceptor.java |   2 +-
 .../plugin/rocketMQ/v4/OnSuccessInterceptor.java   |   2 +-
 .../ProducerOperationHandlerInterceptor.java       |   1 -
 .../TransportClientHandlerInterceptor.java         |   1 -
 .../v1/ProducerOperationHandlerInterceptor.java    |   1 -
 .../v1/TransportClientHandlerInterceptor.java      |   1 -
 .../plugin/sjdbc/define/ExecuteInterceptor.java    |   2 +-
 .../plugin/shardingsphere/ExecuteInterceptor.java  |   2 +-
 .../shardingsphere/JDBCRootInvokeInterceptor.java  |   2 +-
 .../plugin/shardingsphere/ParseInterceptor.java    |   2 +-
 .../shardingsphere/ProxyRootInvokeInterceptor.java |   2 +-
 .../shardingsphere/v40/ExecuteInterceptor.java     |   2 +-
 .../v40/JDBCRootInvokeInterceptor.java             |   2 +-
 .../shardingsphere/v40/ParseInterceptor.java       |   2 +-
 .../v40/ProxyRootInvokeInterceptor.java            |   2 +-
 .../shardingsphere/v41/ExecuteInterceptor.java     |   2 +-
 .../v41/JDBCRootInvokeInterceptor.java             |   2 +-
 .../shardingsphere/v41/ParseInterceptor.java       |   2 +-
 .../v41/ProxyRootInvokeInterceptor.java            |   2 +-
 .../shardingsphere/v4rc3/ExecuteInterceptor.java   |   2 +-
 .../v4rc3/JDBCRootInvokeInterceptor.java           |   2 +-
 .../shardingsphere/v4rc3/ParseInterceptor.java     |   2 +-
 .../v4rc3/ProxyRootInvokeInterceptor.java          |   2 +-
 .../shardingsphere/v4/ExecuteInterceptor.java      |   2 +-
 .../v4/JDBCRootInvokeInterceptor.java              |   2 +-
 .../plugin/shardingsphere/v4/ParseInterceptor.java |   2 +-
 .../v4/ProxyRootInvokeInterceptor.java             |   2 +-
 .../plugin/sofarpc/SofaRpcConsumerInterceptor.java |   1 -
 .../plugin/sofarpc/SofaRpcProviderInterceptor.java |   1 -
 .../apm/plugin/solrj/SolrClientInterceptor.java    |   2 +-
 .../apm/plugin/solrj/SolrConnectorInterceptor.java |   2 +-
 .../apm/plugin/spring/async/SWCallable.java        |   2 +-
 .../concurrent/FailureCallbackInterceptor.java     |   5 +-
 .../concurrent/SuccessCallbackInterceptor.java     |   2 +-
 .../interceptor/AbstractMethodInterceptor.java     |   2 +-
 apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml  |   1 -
 .../resttemplate/async/FutureGetInterceptor.java   |   2 +-
 .../resttemplate/async/RestExecuteInterceptor.java |   2 +-
 .../resttemplate/sync/RestExecuteInterceptor.java  |   2 +-
 .../resttemplate/sync/RestResponseInterceptor.java |   2 +-
 .../scheduled/ScheduledMethodInterceptor.java      |   2 +-
 .../v2/MemcachedMethodInterceptor.java             |   1 -
 .../apm/plugin/struts2/Struts2Interceptor.java     |   2 +-
 .../tomcat78x/TomcatExceptionInterceptor.java      |   2 +-
 .../plugin/tomcat78x/TomcatInvokeInterceptor.java  |   1 -
 .../undertow/v2x/ListenerConfigInterceptor.java    |   2 +-
 .../undertow/v2x/RootHandlerInterceptor.java       |   2 +-
 .../undertow/v2x/RoutingHandlerInterceptor.java    |   2 +-
 .../undertow/v2x/handler/TracingHandler.java       |   2 +-
 .../ClusteredEventBusSendRemoteInterceptor.java    |   2 +-
 .../EventBusImplDeliverToHandlerInterceptor.java   |   2 +-
 .../vertx3/HandlerRegistrationInterceptor.java     |   2 +-
 ...lientRequestImplHandleExceptionInterceptor.java |   4 +-
 ...ClientRequestImplHandleResponseInterceptor.java |   2 +-
 .../vertx3/HttpClientRequestImplInterceptor.java   |   2 +-
 ...tpContextHandleDispatchResponseInterceptor.java |   2 +-
 .../vertx3/HttpContextSendRequestInterceptor.java  |   2 +-
 ...rverResponseImplHandleExceptionInterceptor.java |   4 +-
 .../vertx3/HttpServerResponseImplInterceptor.java  |   2 +-
 .../plugin/vertx3/RouteImplHandlerInterceptor.java |   2 +-
 .../apm/plugin/vertx3/RouteStateInterceptor.java   |   2 +-
 .../ServerConnectionHandleMessageInterceptor.java  |   2 +-
 .../xmemcached/v2/XMemcachedMethodInterceptor.java |   1 -
 .../trace/ActiveSpanErrorThrowableInteceptor.java  |   1 -
 .../trace/CallableOrRunnableInvokeInterceptor.java |   2 +-
 .../IgnoredExceptionAnnotationActivation.java}     |  19 ++-
 .../IgnoredExceptionConstructInterceptor.java}     |  14 +-
 .../trace/TagAnnotationMethodInterceptor.java      |   2 +-
 .../trace/TraceAnnotationMethodInterceptor.java    |   2 +-
 .../src/main/resources/skywalking-plugin.def       |   3 +-
 .../jdk/http/HttpClientParseHttpInterceptor.java   |   2 +-
 .../http/HttpClientWriteRequestInterceptor.java    |   2 +-
 .../jdk/threading/ThreadingMethodInterceptor.java  |   2 +-
 apm-sniffer/config/agent.config                    |   7 +
 .../interceptor/BaseInterceptorMethods.java        |   2 +-
 .../apm/plugin/gson/GsonFromJsonInterceptor.java   |   2 +-
 .../apm/plugin/gson/GsonToJsonInterceptor.java     |   2 +-
 .../gateway-2.0.x-plugin/pom.xml                   |  32 +++++
 .../gateway/v20x/HttpClientRequestInterceptor.java |   2 +-
 .../v20x/NettyRoutingFilterInterceptor.java        |   2 +-
 .../AbstractGateway200EnhancePluginDefine.java     |  30 +++++
 .../define/DispatcherHandlerInstrumentation.java   |  17 +--
 .../v20x/define/HttpClientInstrumentation.java     |   5 +-
 .../define/HttpClientRequestInstrumentation.java   |   3 +-
 .../define/NettyRoutingFilterInstrumentation.java  |   3 +-
 .../define/ServerWebExchangeInstrumentation.java   |  17 +--
 .../src/main/resources/skywalking-plugin.def       |   4 +-
 .../gateway-2.1.x-plugin/pom.xml                   |  36 ++++-
 .../v21x/NettyRoutingFilterInterceptor.java        |   2 +-
 .../define/DispatcherHandlerInstrumentation.java}  |  11 +-
 .../define/ServerWebExchangeInstrumentation.java}  |  11 +-
 .../src/main/resources/skywalking-plugin.def       |   2 +
 .../optional-spring-plugins/pom.xml                |   1 +
 .../annotations/SpringAnnotationInterceptor.java   |   2 +-
 .../EndTransactionMethodInterceptor.java           |   2 +-
 .../GetTransactionMethodInterceptor.java           |   2 +-
 .../spring-webflux-5.x-plugin/pom.xml              |   2 +-
 .../DispatcherHandlerHandleMethodInterceptor.java  |   0
 .../ServerWebExchangeConstructorInterceptor.java   |   0
 .../define/DispatcherHandlerInstrumentation.java   |   0
 .../define/ServerWebExchangeInstrumentation.java   |   0
 .../src/main/resources/skywalking-plugin.def       |   0
 .../quartz/JobRunShellMethodInterceptor.java       |   2 +-
 .../plugin/zookeeper/ClientCnxnInterceptor.java    |   1 -
 .../zookeeper/EventThreadMethodInterceptor.java    |   2 +-
 docs/en/guides/E2E-local-remote-debug.md           |  28 ++++
 docs/en/guides/README.md                           |   3 +
 docs/en/setup/backend/backend-alarm.md             |  17 +++
 .../java-agent/How-to-tolerate-exceptions.md       | 114 ++++++++++++++++
 .../setup/service-agent/java-agent/Plugin-list.md  |   1 +
 docs/en/setup/service-agent/java-agent/README.md   |   5 +-
 .../service-agent/java-agent/Supported-list.md     |   2 +-
 .../core/alarm/provider/AlarmRulesWatcher.java     |   5 +
 .../server/core/alarm/provider/NotifyHandler.java  |   2 +
 .../oap/server/core/alarm/provider/Rules.java      |   2 +
 .../server/core/alarm/provider/RulesReader.java    |  19 ++-
 .../alarm/provider/wechat/WechatHookCallback.java  | 101 ++++++++++++++
 .../{Rules.java => wechat/WechatSettings.java}     |  24 ++--
 .../provider/wechat/WechatHookCallbackTest.java    | 147 ++++++++++++++++++++
 .../src/main/resources/alarm-settings.yml          |  10 ++
 .../main/resources/ui-initialized-templates.yml    |   4 +-
 .../skywalking/e2e/SkyWalkingAnnotations.java      |  31 +++--
 .../skywalking/e2e/docker/DockerComposeFile.java   |   6 +-
 .../e2e/docker/DockerComposeFileTest.java          |  33 +++--
 .../{docker-compose.yml => docker-compose.one.yml} |  32 ++---
 .../{docker-compose.yml => docker-compose.two.yml} |   0
 test/plugin/agent-test-tools/pom.xml               |   2 +-
 .../bin/startup.sh                                 |   7 +-
 .../config/expectedData.yaml                       | 148 +++++++++++++++++++++
 .../configuration.yml                              |   6 +-
 .../exception-checker-spring-scenario/pom.xml      | 118 ++++++++++++++++
 .../src/main/assembly/assembly.xml                 |  42 +++---
 .../apm/toolkit/trace/IgnoredException.java}       |  25 ++--
 .../testcase/exceptionchecker}/Application.java    |  15 ++-
 .../controller/CaseController.java                 |  79 +++++++++++
 .../exception/TestAnnotatedException.java          |  49 ++++---
 .../exceptionchecker/exception/TestException.java} |  30 +++--
 .../exception/TestHierarchyListedException.java    |  44 ++++++
 .../exception/TestListedException.java}            |  30 +++--
 .../exceptionchecker/service/TestService.java      |  50 +++++++
 .../src/main/resources/application.yaml            |  23 ++++
 .../src/main/resources/log4j2.xml                  |   0
 .../support-version.list}                          |   8 +-
 .../config/expectedData.yaml                       | 132 ++++++++++++++++++
 .../configuration.yml                              |  11 +-
 .../exception-checker-tomcat-scenario/pom.xml      |  97 ++++++++++++++
 .../apm/toolkit/trace/IgnoredException.java}       |  25 ++--
 .../controller/CaseController.java                 |  79 +++++++++++
 .../exception/TestAnnotatedException.java          |  49 ++++---
 .../exceptionchecker/exception/TestException.java} |  30 +++--
 .../exception/TestHierarchyListedException.java    |  44 ++++++
 .../exception/TestListedException.java}            |  30 +++--
 .../exception/TestOtherClassLoaderException.java   |  44 ++++++
 .../exceptionchecker/service/TestService.java      |  50 +++++++
 .../src/main/resources/log4j2.xml                  |   0
 .../src/main/webapp/WEB-INF/spring-mvc-servlet.xml |   0
 .../src/main/webapp/WEB-INF/web.xml                |  39 +++---
 .../support-version.list}                          |   8 +-
 .../sc/gateway/projectA/TestFilterConfig.java      |  35 -----
 .../sc/gateway/projectA/ApiKeyResolver.java        |  31 +++++
 .../testcase/sc/gateway/projectA/Application.java  |  29 ++++
 .../testcase/sc/gateway/projectA/Test1Filter.java  |  20 +--
 .../testcase/sc/gateway/projectA/Test2Filter.java  |  20 +--
 .../sc/gateway/projectA/TestFilterConfig.java      |  35 +++++
 .../testcase/sc/gateway/projectB/Application.java  |  31 -----
 .../projectB/controller/TestController.java        |  36 -----
 .../testcase/sc/gateway/projectB/Application.java  |  31 +++++
 .../projectB/controller/TestController.java        |  36 +++++
 .../sc/gateway/projectA/TestFilterConfig.java      |  35 -----
 .../sc/gateway/projectA/ApiKeyResolver.java        |  31 +++++
 .../testcase/sc/gateway/projectA/Application.java  |  29 ++++
 .../testcase/sc/gateway/projectA/Test1Filter.java  |  20 +--
 .../testcase/sc/gateway/projectA/Test2Filter.java  |  20 +--
 .../sc/gateway/projectA/TestFilterConfig.java      |  35 +++++
 .../testcase/sc/gateway/projectB/Application.java  |  31 -----
 .../projectB/controller/TestController.java        |  36 -----
 .../testcase/sc/gateway/projectB/Application.java  |  31 +++++
 .../projectB/controller/TestController.java        |  36 +++++
 .../scenarios/gateway-2.1.x-scenario/pom.xml       |   2 +-
 .../grpc-scenario/config/expectedData.yaml         |   2 +-
 .../hystrix-scenario/config/expectedData.yaml      |   2 +-
 .../scenarios/webflux-scenario/configuration.yml   |   2 +
 312 files changed, 3067 insertions(+), 830 deletions(-)
 copy test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => apm-application-toolkit/apm-toolkit-trace/src/main/java/org/apache/skywalking/apm/toolkit/trace/IgnoredException.java (61%)
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/ServerWebExchangeConstructorInterceptor.java => apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/AnnotationMatchExceptionCheckStrategy.java} (54%)
 create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/ExceptionCheckContext.java
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/ServerWebExchangeConstructorInterceptor.java => apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/ExceptionCheckStrategy.java} (64%)
 create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/HierarchyMatchExceptionCheckStrategy.java
 rename test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/Application.java => apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/OffExceptionCheckStrategy.java (57%)
 create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/StatusCheckService.java
 create mode 100644 apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/status/StatusChecker.java
 create mode 100644 apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/status/ExceptionCheckStrategyTest.java
 create mode 100644 apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/status/StatusCheckServiceCheckTest.java
 create mode 100644 apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/status/StatusCheckerTest.java
 create mode 100644 apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/status/TestAnnotationMatchException.java
 create mode 100644 apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/status/TestHierarchyMatchException.java
 copy test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/status/TestNamedMatchException.java (50%)
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/define/ServerWebExchangeInstrumentation.java => apm-toolkit-activation/apm-toolkit-trace-activation/src/main/java/org/apache/skywalking/apm/toolkit/activation/trace/IgnoredExceptionAnnotationActivation.java} (73%)
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/ServerWebExchangeConstructorInterceptor.java => apm-toolkit-activation/apm-toolkit-trace-activation/src/main/java/org/apache/skywalking/apm/toolkit/activation/trace/IgnoredExceptionConstructInterceptor.java} (65%)
 create mode 100644 apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v20x/define/AbstractGateway200EnhancePluginDefine.java
 copy test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v20x/define/DispatcherHandlerInstrumentation.java (63%)
 copy test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => apm-sniffer/optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v20x/define/ServerWebExchangeInstrumentation.java (63%)
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/ServerWebExchangeConstructorInterceptor.java => optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v21x/define/DispatcherHandlerInstrumentation.java} (65%)
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/ServerWebExchangeConstructorInterceptor.java => optional-plugins/optional-spring-plugins/optional-spring-cloud/gateway-2.1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/gateway/v21x/define/ServerWebExchangeInstrumentation.java} (65%)
 rename apm-sniffer/{apm-sdk-plugin/spring-plugins => optional-plugins/optional-spring-plugins}/spring-webflux-5.x-plugin/pom.xml (96%)
 rename apm-sniffer/{apm-sdk-plugin/spring-plugins => optional-plugins/optional-spring-plugins}/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/DispatcherHandlerHandleMethodInterceptor.java (100%)
 rename apm-sniffer/{apm-sdk-plugin/spring-plugins => optional-plugins/optional-spring-plugins}/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/ServerWebExchangeConstructorInterceptor.java (100%)
 rename apm-sniffer/{apm-sdk-plugin/spring-plugins => optional-plugins/optional-spring-plugins}/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/define/DispatcherHandlerInstrumentation.java (100%)
 rename apm-sniffer/{apm-sdk-plugin/spring-plugins => optional-plugins/optional-spring-plugins}/spring-webflux-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/webflux/v5/define/ServerWebExchangeInstrumentation.java (100%)
 copy apm-sniffer/{apm-sdk-plugin/spring-plugins => optional-plugins/optional-spring-plugins}/spring-webflux-5.x-plugin/src/main/resources/skywalking-plugin.def (100%)
 create mode 100644 docs/en/guides/E2E-local-remote-debug.md
 create mode 100644 docs/en/setup/service-agent/java-agent/How-to-tolerate-exceptions.md
 create mode 100644 oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/wechat/WechatHookCallback.java
 copy oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/{Rules.java => wechat/WechatSettings.java} (65%)
 create mode 100644 oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/wechat/WechatHookCallbackTest.java
 copy test/e2e/e2e-common/src/test/resources/{docker-compose.yml => docker-compose.one.yml} (52%)
 rename test/e2e/e2e-common/src/test/resources/{docker-compose.yml => docker-compose.two.yml} (100%)
 rename apm-sniffer/apm-sdk-plugin/spring-plugins/spring-webflux-5.x-plugin/src/main/resources/skywalking-plugin.def => test/plugin/scenarios/exception-checker-spring-scenario/bin/startup.sh (71%)
 create mode 100644 test/plugin/scenarios/exception-checker-spring-scenario/config/expectedData.yaml
 copy test/plugin/scenarios/{webflux-scenario => exception-checker-spring-scenario}/configuration.yml (77%)
 create mode 100644 test/plugin/scenarios/exception-checker-spring-scenario/pom.xml
 copy apm-sniffer/optional-plugins/optional-spring-plugins/pom.xml => test/plugin/scenarios/exception-checker-spring-scenario/src/main/assembly/assembly.xml (52%)
 copy test/plugin/scenarios/{gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => exception-checker-spring-scenario/src/main/java/org/apache/skywalking/apm/toolkit/trace/IgnoredException.java} (61%)
 rename test/plugin/scenarios/{gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA => exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker}/Application.java (70%)
 create mode 100644 test/plugin/scenarios/exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/controller/CaseController.java
 copy oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/Rules.java => test/plugin/scenarios/exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestAnnotatedException.java (50%)
 copy test/plugin/scenarios/{gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestException.java} (53%)
 create mode 100644 test/plugin/scenarios/exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestHierarchyListedException.java
 copy test/plugin/scenarios/{gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestListedException.java} (51%)
 create mode 100644 test/plugin/scenarios/exception-checker-spring-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/service/TestService.java
 create mode 100644 test/plugin/scenarios/exception-checker-spring-scenario/src/main/resources/application.yaml
 copy test/plugin/scenarios/{zookeeper-scenario => exception-checker-spring-scenario}/src/main/resources/log4j2.xml (100%)
 copy test/plugin/scenarios/{webflux-scenario/configuration.yml => exception-checker-spring-scenario/support-version.list} (78%)
 create mode 100644 test/plugin/scenarios/exception-checker-tomcat-scenario/config/expectedData.yaml
 copy test/plugin/scenarios/{webflux-scenario => exception-checker-tomcat-scenario}/configuration.yml (59%)
 create mode 100644 test/plugin/scenarios/exception-checker-tomcat-scenario/pom.xml
 copy test/plugin/scenarios/{gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => exception-checker-tomcat-scenario/src/main/java/org/apache/skywalking/apm/toolkit/trace/IgnoredException.java} (61%)
 create mode 100644 test/plugin/scenarios/exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/controller/CaseController.java
 copy oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/Rules.java => test/plugin/scenarios/exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestAnnotatedException.java (50%)
 rename test/plugin/scenarios/{gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestException.java} (53%)
 create mode 100644 test/plugin/scenarios/exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestHierarchyListedException.java
 rename test/plugin/scenarios/{gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java => exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestListedException.java} (51%)
 create mode 100644 test/plugin/scenarios/exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/exception/TestOtherClassLoaderException.java
 create mode 100644 test/plugin/scenarios/exception-checker-tomcat-scenario/src/main/java/test/org/apache/skywalking/apm/testcase/exceptionchecker/service/TestService.java
 copy test/plugin/scenarios/{zookeeper-scenario => exception-checker-tomcat-scenario}/src/main/resources/log4j2.xml (100%)
 copy test/plugin/scenarios/{spring-4.3.x-scenario => exception-checker-tomcat-scenario}/src/main/webapp/WEB-INF/spring-mvc-servlet.xml (100%)
 copy apm-sniffer/optional-plugins/optional-spring-plugins/pom.xml => test/plugin/scenarios/exception-checker-tomcat-scenario/src/main/webapp/WEB-INF/web.xml (50%)
 copy test/plugin/scenarios/{webflux-scenario/configuration.yml => exception-checker-tomcat-scenario/support-version.list} (78%)
 delete mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/TestFilterConfig.java
 create mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java
 create mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectA/Application.java
 rename test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/{org => test}/apache/skywalking/apm/testcase/sc/gateway/projectA/Test1Filter.java (55%)
 rename test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/{org => test}/apache/skywalking/apm/testcase/sc/gateway/projectA/Test2Filter.java (55%)
 create mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectA-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectA/TestFilterConfig.java
 delete mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectB-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectB/Application.java
 delete mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectB-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectB/controller/TestController.java
 create mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectB-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectB/Application.java
 create mode 100644 test/plugin/scenarios/gateway-2.0.x-scenario/gateway-projectB-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectB/controller/TestController.java
 delete mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectA/TestFilterConfig.java
 create mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectA/ApiKeyResolver.java
 create mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectA/Application.java
 rename test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/{org => test}/apache/skywalking/apm/testcase/sc/gateway/projectA/Test1Filter.java (55%)
 rename test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/{org => test}/apache/skywalking/apm/testcase/sc/gateway/projectA/Test2Filter.java (55%)
 create mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectA-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectA/TestFilterConfig.java
 delete mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectB-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectB/Application.java
 delete mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectB-scenario/src/main/java/org/apache/skywalking/apm/testcase/sc/gateway/projectB/controller/TestController.java
 create mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectB-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectB/Application.java
 create mode 100644 test/plugin/scenarios/gateway-2.1.x-scenario/gateway-projectB-scenario/src/main/java/test/apache/skywalking/apm/testcase/sc/gateway/projectB/controller/TestController.java