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 <[email protected]>
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 <[email protected]>
---
.../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 {