Skip to content

Conversation

@nichanghao
Copy link
Contributor

  • If this pull request closes/resolves/fixes an existing issue, replace the issue number. Resolves skywalking#12972. Support for Lettuce 6.5+ tracing.
  • Update the CHANGES log.

@wu-sheng
Copy link
Member

Please update the supported-list.md about your new versions.

@wu-sheng wu-sheng added plugin enhancement New feature or request labels Jun 24, 2025
@wu-sheng wu-sheng added this to the 9.5.0 milestone Jun 24, 2025
@wu-sheng wu-sheng requested review from Copilot and wu-sheng June 24, 2025 03:41
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Add support for tracing Lettuce client version 6.5+ by refactoring common instrumentation code into a shared module, introducing a version-specific plugin, and providing an end-to-end test scenario.

  • Extract common logic into a new lettuce-common plugin module
  • Create a lettuce-6.5.x-plugin with overrides for protocol keyword handling
  • Add the lettuce-6.5.x-scenario integration test scenario and update CI configuration

Reviewed Changes

Copilot reviewed 37 out of 38 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/plugin/scenarios/lettuce-6.5.x-scenario/support-version.list Add supported version 6.5.0.RELEASE
test/plugin/scenarios/lettuce-6.5.x-scenario/src/main/java/.../Application.java Bootstrap Spring Boot application for the new scenario
test/plugin/scenarios/lettuce-6.5.x-scenario/src/main/java/.../LettuceController.java Implement sync/async Redis operations for tracing
apm-sniffer/apm-sdk-plugin/pom.xml Replace lettuce-5.x-plugin with a new lettuce-plugins aggregator module
apm-sniffer/apm-sdk-plugin/lettuce-plugins/pom.xml Declare lettuce-common and lettuce-6.5.x-plugin modules
apm-sniffer/apm-sdk-plugin/lettuce-plugins/lettuce-common/src/main/java/.../RedisChannelWriterInterceptor.java Refactor and extract common instrumentation logic
apm-sniffer/apm-sdk-plugin/lettuce-plugins/lettuce-6.5.x-plugin/src/main/java/.../RedisChannelWriterInterceptorV6.java Override command‐name extraction for Lettuce 6.5+
CHANGES.md Document release note for Lettuce 6.5+ support
.github/workflows/plugins-test.1.yaml Enable CI job for the new lettuce-6.5.x-scenario
Comments suppressed due to low confidence (1)

apm-sniffer/apm-sdk-plugin/lettuce-plugins/lettuce-6.5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/lettuce/v65/RedisChannelWriterInterceptorV6.java:26

  • Add a unit test in the lettuce-6.5.x-plugin module to verify that getCommandName returns the expected command name (e.g., protocol.toString()), ensuring version-specific logic is covered.
    protected String getCommandName(final ProtocolKeyword protocol) {

@wu-sheng
Copy link
Member

Your change somehow impacts the existing tests.

Jun 24, 2025 6:49:29 AM org.apache.skywalking.apm.dependencies.io.grpc.internal.ManagedChannelImpl$3 uncaughtException
SEVERE: [Channel<1>: (localhost:19876)] Uncaught exception in the SynchronizationContext. Panic!
java.lang.ClassCastException: org.apache.skywalking.apm.plugin.ThreadPoolExecuteMethodInterceptor cannot be cast to org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor

Could you recheck?

@wu-sheng
Copy link
Member

Could you give me more explanations here about what is difference between v5 and v6.5?, besides the different witness class.

@wu-sheng
Copy link
Member

Most are good. Please fix some nits and we should be able to merge this.

@nichanghao
Copy link
Contributor Author

Hi, i fixed the PR suggestions .

@wu-sheng wu-sheng merged commit b1f18f3 into apache:main Jun 25, 2025
206 of 228 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request plugin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants