devkanro opened a new pull request, #451: URL: https://github.com/apache/skywalking-java/pull/451
# What's changed? - A new instrumentation point for DispatchedTask - Provide stack tracing info for kotlin coroutine ## Instrumentation point at `DispatchedTask.run` In the previous practice, I chose to wrap all `Runnables` as `TracingRunnable`. This will cause the `CoroutineContext` in `DispachedContinution` to not be used by Dispacher. Although there will be no problem under normal usage, in some custom `CoroutineContext` scenarios, there may be problems where the `CoroutineContext` cannot be read. ## Provide stack tracing info for kotlin coroutine Since we can distinguish between a normal `Runnable` and a `DispatchedTask`, we can extract the stack trace of the Kotlin Coroutine suspend from `DispatchedTask`, which may be very effective in actual business. <img width="1126" alt="截屏2023-02-06 18 23 20" src="https://user-images.githubusercontent.com/9367842/216947246-13836877-8632-4aa9-b9e1-8a513347dcff.png"> # TODO List - [x] Update changelog - [ ] Discuss the best way to present the stack Since Span's Tag cannot display multiple lines of text, I used multiple tags similar to `coroutine.stack[13]` to display the stack trace. I don't know if it will cause SK performance or other problems. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
