* 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
* add logstash logback plugin
* add logstash logback plugin, set pom provided, refine logback doc
* refine logstash logback doc
* refine the comment
* remove the app_id that not related to SkyWalking
* remove tag @date for CI error: unknown tag: date
* add description for iLoggingEvent for ci warning: no description for @param
* Support op group name in agent config core.
* Provide core API for operation name grouping, rest template plugin update, and doc update.
* Fix doc
* Fix test case.
* Fix missing changes.
* add shuyun to powered-by.md (#3341)
* add shuyun to powered-by.md
* update powered-by.md
* Remove static method.
* Add cached writer so we need not call whole method.
* Make writer volatile.
* Make writer to WRITER.
* Rewrite the writeFactory for add the cached writer and keep the unit tests stable.
* Give the default writer.
* Remove volatile.
* Stabilize unit test
The FileWriterTest creates files in the source directory(failed to
delete them due to a bug in the `deleteDir` method), making
them being checked by checkstyle plugin and failed to pass.
* Seperate compilation step
* Refactor open edge.
* Make refactor works.
* Revert log back.
* Remove unnecessary codes.
* Open edge for all internal binding interceptors.
* Add document about JDK 9+ module.
* Change bytebuddy to 1.10.1(unreleased)
* Change document
* 1. Adopt the latest bytebudy changes(snapshot only), commit b609711564.
2. Remove disruptor by ArrayBlockingQueue, because Disruptor can't work in both JDK 8(1) and 9-12, if we don't add `--add-modules jdk.unsupported`
3. Doc update.
* Update README.md
* improve AsyncSpan API: make #asyncFinish and #prepareForAsync can not invoke more than once
make the API more strong: make the plugin code bug fail-fast