* Add tests on webapp to increase test coverage
* Rename test class
* Add tests on webapp to increase test coverage
* Fix unit tests
* Remove duplicated class
* Add pulsar apm plugin.
* Fix check style
* Fix pulsar consumer component define.
* Add pulsar to component-libraries.yml
* Fix error interceptor class.
* Add pulsar to agent support list.
* Add Pulsar to ComponentsDefine and component-libraries.yml
* Move create entry span log of consumer from after method to before method
* Fix send callback issue when exception cause.
* Fix test issues
* Move pulsar plugin to optional plugins
* Add none messages tests for interceptor of producer and consumer.
* Remove unused comments.
* Move pulsar plugin back to the apm-sdk-plugin
* Fix comments
* remove set startTime for entry span(default is set by System.currentTimeMillis)
* Fix comments
* Add Light4J 1.6.x plug-in
* Add unit test for Light4J plug-in
* Add missing id to server-starter
* Remove mentions of version 1.6.x
Some local testing showed that the plugin successfully generated traces for a light4j project built with light-codegen v2.x. Therefore, there is no need for a separate plugin for v2.x and no distinction needs to be made with light4j v1.6.x.
* Update supported light4j versions
* Use ContextSnapshot to maintain trace
In a typical Light4j project, the ExceptionHandler#handleRequest is the asynchronous execution point. The flow is ExceptionHandler#handleRequest -> HttpServerExchange#dispatch -> ... -> ExceptionHandler#handleRequest. This means that handleRequest is being intercepted twice and each time a LocalSpan is created. Without handling thread propagation, the trace segment gets split up.
By saving a ContextSnapshot into the enhanced object (ExceptionHandler), we can determine if it is necessary to continue the segment.
* Update logic for span creation in trace
By default, the Light4J plugin now overrides the Undertow plugin's entry span with its own. This new entry span is created just before execution of the ExceptionHandler#handleRequest in the I/O thread. The entry span is generated here because it is considered the starting point of the Light4J handler chain.
There is now also the option to enable detailed span creation when tracing requests through Light4J. These local spans mark which middleware and business handlers are involved with handling the HTTP request to a Light4J service.
* Update skywalking version
* Update light4j version
* Fix LightInstrumentation javadoc
* Remove import violating checkstyle
This import was added from the link reference in the javadoc. The javadoc has now been changed to just reference the method name.
* Move light4j agent config property
* Sync UI
* spring-cloud-gateway traceid does not transmit #3411
skywalking-version:6.5.0
spring-gateway-version:2.1.2
Error Description:
Customize the filter, traceid does not transmit.
"ServerWebExchangeDecorator" is a transport chain,His structure should be like this:
serverWebExchangeDecorator
-----(ServerWebExchangeDecorator)delegate
------(ServerWebExchangeDecorator)delegate
------.....
-----(DefaultServerWebExchange)delegate
In the current source code, there is no deep search, but only the next level. When there are multiple custom filters, you get an error.
Repair method:
Look for "delegate" of "ServerWebExchangeDecorator" recursively until "DefaultServerWebExchange"
* spring-boot-webflux traceid does not transmit #3411
spring-boot-starter-webflux-version:2.1.6
Error Description:
Customize the filter, traceid does not transmit.
"ServerWebExchangeDecorator" is a transport chain,His structure should be like this:
serverWebExchangeDecorator
-----(ServerWebExchangeDecorator)delegate
------(ServerWebExchangeDecorator)delegate
------.....
-----(DefaultServerWebExchange)delegate
In the current source code, there is no deep search, but only the next level. When there are multiple custom filters, you get an error.
Repair method:
Look for "delegate" of "ServerWebExchangeDecorator" recursively until "DefaultServerWebExchange"
* checkStyle
* ADD: add operationName length threshold
* MOD:move operationName threshold to Config, simplified code
* MOD:update agent set-up document, clean code
* MOD:add agent.operation_name_threshold conf prefix
* MOD: Modify compatibility of kafka plugin and expand operationName
* MOD: Delete localSpan layer, modify consumer operationName, delete producer key
* MOD: Modify operationName, reduce String operation
* FIX: Fix callback break, the new version of kafka callback is intercepted twice and needs to be judged
* FIX: Fix different problems with KafkaProducer constructor in old and new versions
* MOD: separate code