From 3b2a6444032ca4ea12a01ca40491b5c1f76b8c99 Mon Sep 17 00:00:00 2001 From: Thomas Vitale Date: Sat, 23 Oct 2021 09:50:30 +0200 Subject: [PATCH] Use Sleuth API for Redis instrumentation Extracted Brave-specific Redis instrumentation to use the Sleuth API, and registered the implementation in Brave autoconfiguration. Fixes gh-2045 --- .../redis/BraveRedisAutoConfiguration.java | 8 +++++--- ...ettuceClientResourcesBeanPostProcessor.java | 2 +- spring-cloud-sleuth-brave/pom.xml | 6 ------ spring-cloud-sleuth-instrumentation/pom.xml | 6 ++++++ .../ClientResourcesBuilderCustomizer.java | 2 +- ...ettuceClientResourcesBuilderCustomizer.java | 18 ++++++++---------- 6 files changed, 21 insertions(+), 21 deletions(-) rename {spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave => spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth}/instrument/redis/ClientResourcesBuilderCustomizer.java (93%) rename {spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave => spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth}/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java (67%) diff --git a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/brave/instrument/redis/BraveRedisAutoConfiguration.java b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/brave/instrument/redis/BraveRedisAutoConfiguration.java index 6e0596d2d..b8c3dcae2 100644 --- a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/brave/instrument/redis/BraveRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/brave/instrument/redis/BraveRedisAutoConfiguration.java @@ -32,8 +32,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.sleuth.autoconfig.brave.BraveAutoConfiguration; -import org.springframework.cloud.sleuth.brave.instrument.redis.ClientResourcesBuilderCustomizer; -import org.springframework.cloud.sleuth.brave.instrument.redis.TraceLettuceClientResourcesBuilderCustomizer; +import org.springframework.cloud.sleuth.instrument.redis.ClientResourcesBuilderCustomizer; +import org.springframework.cloud.sleuth.instrument.redis.TraceLettuceClientResourcesBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -66,7 +66,9 @@ public class BraveRedisAutoConfiguration { TraceLettuceClientResourcesBuilderCustomizer traceLettuceClientResourcesBuilderCustomizer(Tracing tracing, TraceRedisProperties traceRedisProperties, Sampler sampler) { eagerlyInitializePotentiallyRefreshScopeSampler(sampler); - return new TraceLettuceClientResourcesBuilderCustomizer(tracing, traceRedisProperties.getRemoteServiceName()); + BraveTracing braveTracing = BraveTracing.builder().tracing(tracing).excludeCommandArgsFromSpanTags() + .serviceName(traceRedisProperties.getRemoteServiceName()).build(); + return new TraceLettuceClientResourcesBuilderCustomizer(braveTracing); } /** diff --git a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/instrument/redis/TraceLettuceClientResourcesBeanPostProcessor.java b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/instrument/redis/TraceLettuceClientResourcesBeanPostProcessor.java index a53d44af8..d8a41a0d8 100644 --- a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/instrument/redis/TraceLettuceClientResourcesBeanPostProcessor.java +++ b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/instrument/redis/TraceLettuceClientResourcesBeanPostProcessor.java @@ -33,7 +33,7 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.cloud.sleuth.autoconfig.brave.instrument.redis.TraceRedisProperties; -import org.springframework.cloud.sleuth.brave.instrument.redis.TraceLettuceClientResourcesBuilderCustomizer; +import org.springframework.cloud.sleuth.instrument.redis.TraceLettuceClientResourcesBuilderCustomizer; import org.springframework.cloud.sleuth.internal.ContextUtil; /** diff --git a/spring-cloud-sleuth-brave/pom.xml b/spring-cloud-sleuth-brave/pom.xml index 1069e4dbe..bb66fd191 100644 --- a/spring-cloud-sleuth-brave/pom.xml +++ b/spring-cloud-sleuth-brave/pom.xml @@ -296,12 +296,6 @@ - - - io.lettuce - lettuce-core - true - org.springframework.boot diff --git a/spring-cloud-sleuth-instrumentation/pom.xml b/spring-cloud-sleuth-instrumentation/pom.xml index 8c30e0bd7..77410bd8c 100644 --- a/spring-cloud-sleuth-instrumentation/pom.xml +++ b/spring-cloud-sleuth-instrumentation/pom.xml @@ -186,6 +186,12 @@ org.aspectj aspectjrt + + + io.lettuce + lettuce-core + true + org.springframework.boot diff --git a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/redis/ClientResourcesBuilderCustomizer.java b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/redis/ClientResourcesBuilderCustomizer.java similarity index 93% rename from spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/redis/ClientResourcesBuilderCustomizer.java rename to spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/redis/ClientResourcesBuilderCustomizer.java index bde0e1ccb..6cddd283c 100644 --- a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/redis/ClientResourcesBuilderCustomizer.java +++ b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/redis/ClientResourcesBuilderCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.brave.instrument.redis; +package org.springframework.cloud.sleuth.instrument.redis; import io.lettuce.core.resource.ClientResources; diff --git a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java similarity index 67% rename from spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java rename to spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java index 1b45845c4..817580304 100644 --- a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java +++ b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceLettuceClientResourcesBuilderCustomizer.java @@ -14,27 +14,25 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.brave.instrument.redis; +package org.springframework.cloud.sleuth.instrument.redis; -import brave.Tracing; import io.lettuce.core.resource.ClientResources; -import io.lettuce.core.tracing.BraveTracing; - -import org.springframework.beans.factory.config.BeanPostProcessor; +import io.lettuce.core.tracing.Tracing; /** - * {@link BeanPostProcessor} for wrapping Lettuce components in a tracing representation. + * {@link ClientResourcesBuilderCustomizer} for wrapping Lettuce components in a tracing + * representation. * * @author Marcin Grzejszczak + * @author Thomas Vitale * @since 3.0.4 */ public class TraceLettuceClientResourcesBuilderCustomizer implements ClientResourcesBuilderCustomizer { - private final BraveTracing tracing; + private final Tracing tracing; - public TraceLettuceClientResourcesBuilderCustomizer(Tracing tracing, String serviceName) { - this.tracing = BraveTracing.builder().tracing(tracing).excludeCommandArgsFromSpanTags().serviceName(serviceName) - .build(); + public TraceLettuceClientResourcesBuilderCustomizer(Tracing tracing) { + this.tracing = tracing; } @Override