darcydai opened a new pull request #17: URL: https://github.com/apache/skywalking-java/pull/17
### Fix <lettuce plugin has a wrong design for record span time elapsed> - [x] Add a unit test to verify that the fix works. - [x] Explain briefly why the bug exists and how to fix it. - [ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #<issue number>. - [ ] Update the [`CHANGES` log](https://github.com/apache/skywalking/blob/master/CHANGES.md). Lettuce is an async Redis client base on netty, and wide use in our company. Recently I found almost every lettuce span has the time elapsed less than 1ms and has a long gap between two spans. After reading the lettuce source code, I found the plugin some bug. because lettuce is an async framework base on netty, old interceptor named 'RedisChannelWriterInterceptor' stop span in after method can not record the time elapsed, it should be close in 'RedisCommand#complete' or 'RedisCommand#completeExceptionally' or 'RedisCommand#cancel' called when Redis server response lettuce plugin record nothing when lettuce work on reactive mode (project reactor) record Redis peer in skywalking dynamic field can simplify The new plugin can work with Redis standalone and Redis Sentinel and Redis cluster(old version can not). Redis cluster and Redis sentinel need to use docker-compose. I do not know how to make scenarios test in this two cluster model -- 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]
