From 502aba84b117e7430781425c856bc046f1740662 Mon Sep 17 00:00:00 2001 From: chang-chao Date: Thu, 21 Mar 2019 10:25:46 +0900 Subject: [PATCH 1/7] Enables Redis tracing by default. Currently, only Lettcue Redis client is supported. --- .../main/asciidoc/spring-cloud-sleuth.adoc | 5 ++ spring-cloud-sleuth-core/pom.xml | 7 ++ .../instrument/redis/OnRedisEnabled.java | 39 +++++++++ .../redis/TraceRedisAutoConfiguration.java | 85 +++++++++++++++++++ ...itional-spring-configuration-metadata.json | 6 ++ .../main/resources/META-INF/spring.factories | 3 +- 6 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java create mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java diff --git a/docs/src/main/asciidoc/spring-cloud-sleuth.adoc b/docs/src/main/asciidoc/spring-cloud-sleuth.adoc index 10c7c30b4..a085c78ab 100644 --- a/docs/src/main/asciidoc/spring-cloud-sleuth.adoc +++ b/docs/src/main/asciidoc/spring-cloud-sleuth.adoc @@ -1373,6 +1373,11 @@ IMPORTANT: We don't support baggage propagation for JMS We instrument the Zuul Ribbon integration by enriching the Ribbon requests with tracing information. To disable Zuul support, set the `spring.sleuth.zuul.enabled` property to `false`. +=== Redis + +We set `tracing` property to Lettcue `ClientResources` instance to enable Brave tracing built in Lettuce . +To disable Redis support, set the `spring.sleuth.redis.enabled` property to `false`. + == Running examples You can see the running examples deployed in the https://run.pivotal.io/[Pivotal Web Services]. diff --git a/spring-cloud-sleuth-core/pom.xml b/spring-cloud-sleuth-core/pom.xml index 42c49ea37..35376e8ca 100644 --- a/spring-cloud-sleuth-core/pom.xml +++ b/spring-cloud-sleuth-core/pom.xml @@ -255,6 +255,13 @@ brave-instrumentation-grpc true + + + io.lettuce + lettuce-core + true + + org.springframework.boot spring-boot-autoconfigure-processor diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java new file mode 100644 index 000000000..1f474a581 --- /dev/null +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java @@ -0,0 +1,39 @@ +/* + * Copyright 2013-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.sleuth.instrument.redis; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; + +/** + * Verifies if Redis property was enabled. + * + * @author Chao Chang + * @since 2.2.0 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.TYPE, ElementType.METHOD }) +@Documented +@ConditionalOnProperty(value = "spring.sleuth.redis.enabled", matchIfMissing = true) +@interface OnRedisEnabled { + +} diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java new file mode 100644 index 000000000..b079a27fd --- /dev/null +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -0,0 +1,85 @@ +/* + * Copyright 2013-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +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.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration + * Auto-configuration} enables Redis span information propagation. + * + * @author Chao Chang + * @since 2.2.0 + */ +@Configuration +@OnRedisEnabled +@ConditionalOnBean(Tracing.class) +@AutoConfigureAfter({ TraceAutoConfiguration.class }) +public class TraceRedisAutoConfiguration { + + @Configuration + @ConditionalOnClass(ClientResources.class) + static class LettuceConfig { + + @Bean + static TraceLettuceClientResourcesBeanPostProcessor traceLettuceClientResourcesBeanPostProcessor( + Tracing tracing) { + return new TraceLettuceClientResourcesBeanPostProcessor(tracing); + } + + } + +} + +class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor { + + private final Tracing tracing; + + TraceLettuceClientResourcesBeanPostProcessor(Tracing tracing) { + this.tracing = tracing; + } + + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) + throws BeansException { + return bean; + } + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) + throws BeansException { + if (bean instanceof ClientResources) { + ClientResources cr = (ClientResources) bean; + if (cr.tracing() == null) { + return cr.mutate().tracing(BraveTracing.create(this.tracing)).build(); + } + } + return bean; + } + +} diff --git a/spring-cloud-sleuth-core/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-sleuth-core/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 8c3f68828..d4d453bb8 100644 --- a/spring-cloud-sleuth-core/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-cloud-sleuth-core/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -53,6 +53,12 @@ "type": "java.lang.Boolean", "description": "Enable span information propagation when using GRPC.", "defaultValue": true + }, + { + "name": "spring.sleuth.redis.enabled", + "type": "java.lang.Boolean", + "description": "Enable span information propagation when using Redis.", + "defaultValue": true } ] } diff --git a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories index db0e76446..5e0814f5f 100644 --- a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories @@ -24,7 +24,8 @@ org.springframework.cloud.sleuth.instrument.grpc.TraceGrpcAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.messaging.TraceMessagingAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.messaging.TraceSpringIntegrationAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.messaging.websocket.TraceWebSocketAutoConfiguration,\ -org.springframework.cloud.sleuth.instrument.opentracing.OpentracingAutoConfiguration +org.springframework.cloud.sleuth.instrument.opentracing.OpentracingAutoConfiguration,\ +org.springframework.cloud.sleuth.instrument.redis.TraceRedisAutoConfiguration # Environment Post Processor org.springframework.boot.env.EnvironmentPostProcessor=\ org.springframework.cloud.sleuth.autoconfig.TraceEnvironmentPostProcessor From 45cf20aca373838b6d71e58023dc65506747280f Mon Sep 17 00:00:00 2001 From: chang-chao Date: Thu, 21 Mar 2019 21:17:55 +0900 Subject: [PATCH 2/7] Adds test case. --- .../redis/TraceRedisAutoConfiguration.java | 4 +- .../TraceRedisAutoConfigurationTests.java | 93 +++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index b079a27fd..b45c338ff 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -75,7 +75,9 @@ class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor throws BeansException { if (bean instanceof ClientResources) { ClientResources cr = (ClientResources) bean; - if (cr.tracing() == null) { + // tracing of ClientResources instance created by default is `disabled()` + if (cr.tracing() == null + || cr.tracing() == io.lettuce.core.tracing.Tracing.disabled()) { return cr.mutate().tracing(BraveTracing.create(this.tracing)).build(); } } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java new file mode 100644 index 000000000..4d5bed271 --- /dev/null +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java @@ -0,0 +1,93 @@ +/* + * Copyright 2013-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.sleuth.instrument.redis; + +import brave.Tracing; +import io.lettuce.core.resource.ClientResources; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.BDDAssertions.then; + +/** + * @author Chao Chang + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = TraceRedisAutoConfigurationTests.Config.class, webEnvironment = SpringBootTest.WebEnvironment.NONE) +public class TraceRedisAutoConfigurationTests { + + @Autowired + ClientResources clientResources; + + @Autowired + TestTraceLettuceClientResourcesBeanPostProcessor traceLettuceClientResourcesBeanPostProcessor; + + @Test + public void tracing_should_be_set() { + then(this.traceLettuceClientResourcesBeanPostProcessor.tracingCalled).isTrue(); + then(this.clientResources.tracing()).isNotNull(); + then(this.clientResources.tracing()) + .isNotSameAs(io.lettuce.core.tracing.Tracing.disabled()); + } + + @Configuration + @EnableAutoConfiguration + protected static class Config { + + @Bean + ClientResources clientResources() { + ClientResources clientResources = ClientResources.create(); + then(clientResources.tracing()) + .isSameAs(io.lettuce.core.tracing.Tracing.disabled()); + return clientResources; + } + + @Bean + TestTraceLettuceClientResourcesBeanPostProcessor testTraceLettuceClientResourcesBeanPostProcessor( + Tracing tracing) { + return new TestTraceLettuceClientResourcesBeanPostProcessor(tracing); + } + + } + +} + +class TestTraceLettuceClientResourcesBeanPostProcessor + extends TraceLettuceClientResourcesBeanPostProcessor { + + boolean tracingCalled = false; + + TestTraceLettuceClientResourcesBeanPostProcessor(Tracing tracing) { + super(tracing); + } + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) + throws BeansException { + this.tracingCalled = true; + return super.postProcessAfterInitialization(bean, beanName); + } + +} From 46b1ad9ff597033e6c1c5fb69820ceda1079ec07 Mon Sep 17 00:00:00 2001 From: chang-chao Date: Thu, 21 Mar 2019 23:13:35 +0900 Subject: [PATCH 3/7] Enables Lettuce Configuration only when ClientResources bean exists. --- .../instrument/redis/TraceRedisAutoConfiguration.java | 7 ++----- .../instrument/redis/TraceRedisAutoConfigurationTests.java | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index b45c338ff..f0a5a0d8c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -24,7 +24,6 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -43,7 +42,7 @@ import org.springframework.context.annotation.Configuration; public class TraceRedisAutoConfiguration { @Configuration - @ConditionalOnClass(ClientResources.class) + @ConditionalOnBean(ClientResources.class) static class LettuceConfig { @Bean @@ -75,9 +74,7 @@ class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor throws BeansException { if (bean instanceof ClientResources) { ClientResources cr = (ClientResources) bean; - // tracing of ClientResources instance created by default is `disabled()` - if (cr.tracing() == null - || cr.tracing() == io.lettuce.core.tracing.Tracing.disabled()) { + if (!cr.tracing().isEnabled()) { return cr.mutate().tracing(BraveTracing.create(this.tracing)).build(); } } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java index 4d5bed271..fb909c995 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java @@ -47,9 +47,7 @@ public class TraceRedisAutoConfigurationTests { @Test public void tracing_should_be_set() { then(this.traceLettuceClientResourcesBeanPostProcessor.tracingCalled).isTrue(); - then(this.clientResources.tracing()).isNotNull(); - then(this.clientResources.tracing()) - .isNotSameAs(io.lettuce.core.tracing.Tracing.disabled()); + then(this.clientResources.tracing().isEnabled()).isTrue(); } @Configuration @@ -59,8 +57,7 @@ public class TraceRedisAutoConfigurationTests { @Bean ClientResources clientResources() { ClientResources clientResources = ClientResources.create(); - then(clientResources.tracing()) - .isSameAs(io.lettuce.core.tracing.Tracing.disabled()); + then(clientResources.tracing().isEnabled()).isFalse(); return clientResources; } From 0999e93b7b50a4b0e20ce185e77efdb17805eda4 Mon Sep 17 00:00:00 2001 From: chang-chao Date: Fri, 22 Mar 2019 01:23:55 +0900 Subject: [PATCH 4/7] Adds @ConditionalOnBean(ClientResources.class) annotation to TraceRedisAutoConfiguration class. --- .../sleuth/instrument/redis/TraceRedisAutoConfiguration.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index f0a5a0d8c..d6d76dda9 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -37,12 +37,11 @@ import org.springframework.context.annotation.Configuration; */ @Configuration @OnRedisEnabled -@ConditionalOnBean(Tracing.class) +@ConditionalOnBean(value = { Tracing.class, ClientResources.class }) @AutoConfigureAfter({ TraceAutoConfiguration.class }) public class TraceRedisAutoConfiguration { @Configuration - @ConditionalOnBean(ClientResources.class) static class LettuceConfig { @Bean From 529dfc1e5826c5d900528dffac62bcee601bf853 Mon Sep 17 00:00:00 2001 From: "chao.chang" Date: Fri, 22 Mar 2019 14:55:41 +0900 Subject: [PATCH 5/7] Adds debug log for TraceLettuceClientResourcesBeanPostProcessor. --- .../instrument/redis/TraceRedisAutoConfiguration.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index d6d76dda9..769e15d5e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -19,6 +19,8 @@ package org.springframework.cloud.sleuth.instrument.redis; import brave.Tracing; import io.lettuce.core.resource.ClientResources; import io.lettuce.core.tracing.BraveTracing; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; @@ -37,7 +39,7 @@ import org.springframework.context.annotation.Configuration; */ @Configuration @OnRedisEnabled -@ConditionalOnBean(value = { Tracing.class, ClientResources.class }) +@ConditionalOnBean({ Tracing.class, ClientResources.class }) @AutoConfigureAfter({ TraceAutoConfiguration.class }) public class TraceRedisAutoConfiguration { @@ -56,6 +58,9 @@ public class TraceRedisAutoConfiguration { class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor { + private static final Log log = LogFactory + .getLog(TraceLettuceClientResourcesBeanPostProcessor.class); + private final Tracing tracing; TraceLettuceClientResourcesBeanPostProcessor(Tracing tracing) { @@ -74,8 +79,12 @@ class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor if (bean instanceof ClientResources) { ClientResources cr = (ClientResources) bean; if (!cr.tracing().isEnabled()) { + log.debug( + "Lettuce ClientResources bean is auto-configured to enable tracing."); return cr.mutate().tracing(BraveTracing.create(this.tracing)).build(); } + log.debug( + "Lettuce ClientResources bean is skipped for auto-configuration because tracing was already enabled."); } return bean; } From b0175e6b602192e25f2fbde003b97e3c6d2bae2d Mon Sep 17 00:00:00 2001 From: "chao.chang" Date: Fri, 22 Mar 2019 18:09:30 +0900 Subject: [PATCH 6/7] License url update(http -> https) --- .../cloud/sleuth/instrument/redis/OnRedisEnabled.java | 2 +- .../sleuth/instrument/redis/TraceRedisAutoConfiguration.java | 2 +- .../instrument/redis/TraceRedisAutoConfigurationTests.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java index 1f474a581..1d2d96a46 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/OnRedisEnabled.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index 769e15d5e..f8ed5bfe1 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java index fb909c995..2a873c706 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, From 1b6f48ef66c0d75f53c486a1e035df8fa1dd379c Mon Sep 17 00:00:00 2001 From: "chao.chang" Date: Fri, 22 Mar 2019 18:12:36 +0900 Subject: [PATCH 7/7] Adds log.isDebugEnabled() before log.debug(). --- .../redis/TraceRedisAutoConfiguration.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index f8ed5bfe1..996a3e595 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -79,12 +79,16 @@ class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor if (bean instanceof ClientResources) { ClientResources cr = (ClientResources) bean; if (!cr.tracing().isEnabled()) { - log.debug( - "Lettuce ClientResources bean is auto-configured to enable tracing."); + if (log.isDebugEnabled()) { + log.debug( + "Lettuce ClientResources bean is auto-configured to enable tracing."); + } return cr.mutate().tracing(BraveTracing.create(this.tracing)).build(); } - log.debug( - "Lettuce ClientResources bean is skipped for auto-configuration because tracing was already enabled."); + if (log.isDebugEnabled()) { + log.debug( + "Lettuce ClientResources bean is skipped for auto-configuration because tracing was already enabled."); + } } return bean; }