This is an automated email from the ASF dual-hosted git repository. songxiaosheng pushed a commit to branch 3.2 in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push: new 0b62b40922 fix: bugfix of tracing zipkin npe when start (#12115) 0b62b40922 is described below commit 0b62b40922943f3edad594916a3ce63ae9322232 Author: conghuhu <56248584+congh...@users.noreply.github.com> AuthorDate: Tue Apr 18 15:05:11 2023 +0800 fix: bugfix of tracing zipkin npe when start (#12115) * fix: bugfix of tracing zipkin npe when start * fix: fix tracing.enabled=false --------- Co-authored-by: songxiaosheng <songxiaosh...@elastic.link> --- .../boot/observability/autoconfigure/ObservabilityUtils.java | 2 ++ .../autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java | 8 +++++++- .../autoconfigure/exporter/zipkin/ZipkinConfigurations.java | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/ObservabilityUtils.java b/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/ObservabilityUtils.java index bbccf44449..2d5b7e5284 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/ObservabilityUtils.java +++ b/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/ObservabilityUtils.java @@ -36,4 +36,6 @@ public class ObservabilityUtils { public static final String DUBBO_TRACING_BAGGAGE_ENABLED = DUBBO_TRACING_BAGGAGE + PROPERTY_NAME_SEPARATOR + "enabled"; + public static final String DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX = DUBBO_TRACING_PREFIX + PROPERTY_NAME_SEPARATOR + "tracing-exporter.zipkin-config"; + } diff --git a/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java index 237348e548..1559854138 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java @@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; @@ -35,23 +36,28 @@ import zipkin2.codec.BytesEncoder; import zipkin2.codec.SpanBytesEncoder; import zipkin2.reporter.Sender; +import static org.apache.dubbo.spring.boot.observability.autoconfigure.ObservabilityUtils.DUBBO_TRACING_PREFIX; +import static org.apache.dubbo.spring.boot.observability.autoconfigure.ObservabilityUtils.DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX; + /** * {@link EnableAutoConfiguration Auto-configuration} for Zipkin. * <p> * It uses imports on {@link ZipkinConfigurations} to guarantee the correct configuration ordering. * - * @since 3.2.0 + * @since 3.2.1 */ @AutoConfiguration(after = RestTemplateAutoConfiguration.class) @ConditionalOnClass(Sender.class) @Import({SenderConfiguration.class, ReporterConfiguration.class, BraveConfiguration.class, OpenTelemetryConfiguration.class}) +@ConditionalOnProperty(prefix = DUBBO_TRACING_PREFIX, name = "enabled", havingValue = "true") @ConditionalOnDubboTracingEnable public class ZipkinAutoConfiguration { @Bean + @ConditionalOnProperty(prefix = DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX, name = "endpoint") @ConditionalOnMissingBean public BytesEncoder<Span> spanBytesEncoder() { return SpanBytesEncoder.JSON_V2; diff --git a/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java b/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java index c73fc2098e..3fc32ff2f4 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java +++ b/dubbo-spring-boot/dubbo-spring-boot-observability-starter/dubbo-spring-boot-observability-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java @@ -27,6 +27,7 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; @@ -44,12 +45,15 @@ import zipkin2.reporter.urlconnection.URLConnectionSender; import java.util.concurrent.atomic.AtomicReference; +import static org.apache.dubbo.spring.boot.observability.autoconfigure.ObservabilityUtils.DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX; + /** * Configurations for Zipkin. Those are imported by {@link ZipkinAutoConfiguration}. */ class ZipkinConfigurations { @Configuration(proxyBeanMethods = false) + @ConditionalOnProperty(prefix = DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX, name = "endpoint") @Import({UrlConnectionSenderConfiguration.class, WebClientSenderConfiguration.class, RestTemplateSenderConfiguration.class}) static class SenderConfiguration { @@ -147,6 +151,7 @@ class ZipkinConfigurations { @Configuration(proxyBeanMethods = false) @ConditionalOnClass(ZipkinSpanExporter.class) + @ConditionalOnProperty(prefix = DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX, name = "endpoint") @EnableConfigurationProperties(DubboConfigurationProperties.class) static class OpenTelemetryConfiguration {