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 {
 

Reply via email to