From 310bd5122ad61d651ac2ad55fbbf08e666182ac7 Mon Sep 17 00:00:00 2001 From: David Schneider Date: Fri, 4 Feb 2022 14:42:53 +0100 Subject: [PATCH] Wrap redis connection based on type in RedisAspect Wrap the redis connection based on the type either as a TracingRedisClusterConnection or TracingRedisConnection. --- .../contrib/spring/cloud/redis/RedisAspect.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/instrument-starters/opentracing-spring-cloud-redis-starter/src/main/java/io/opentracing/contrib/spring/cloud/redis/RedisAspect.java b/instrument-starters/opentracing-spring-cloud-redis-starter/src/main/java/io/opentracing/contrib/spring/cloud/redis/RedisAspect.java index eeed40d9..f22a2566 100644 --- a/instrument-starters/opentracing-spring-cloud-redis-starter/src/main/java/io/opentracing/contrib/spring/cloud/redis/RedisAspect.java +++ b/instrument-starters/opentracing-spring-cloud-redis-starter/src/main/java/io/opentracing/contrib/spring/cloud/redis/RedisAspect.java @@ -56,10 +56,10 @@ public void getClusterConnection() {} /** * Intercepts calls to {@link RedisConnectionFactory#getConnection()} (and related), wrapping the - * outcome in a {@link TracingRedisConnection} + * outcome in a {@link TracingRedisConnection} or a {@link TracingRedisClusterConnection} * * @param pjp the intercepted join point - * @return a new {@link TracingRedisConnection} wrapping the result of the joint point + * @return a new {@link TracingRedisConnection} or {@link TracingRedisClusterConnection} wrapping the result of the joint point */ @Around("getConnection() && connectionFactory()") public Object aroundGetConnection(final ProceedingJoinPoint pjp) throws Throwable { @@ -70,6 +70,9 @@ public Object aroundGetConnection(final ProceedingJoinPoint pjp) throws Throwabl .withSpanNameProvider(RedisSpanNameProvider.PREFIX_OPERATION_NAME(prefixOperationName)) .build(); + if(connection instanceof RedisClusterConnection) { + return new TracingRedisClusterConnection((RedisClusterConnection) connection, tracingConfiguration); + } return new TracingRedisConnection(connection, tracingConfiguration); }