You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2022/06/10 01:46:03 UTC

[servicecomb-java-chassis] branch master updated: [SCB-2535] Bump brave.version from 5.6.11 to 5.13.9 (#3011)

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new f48072b21 [SCB-2535] Bump brave.version from 5.6.11 to 5.13.9 (#3011)
f48072b21 is described below

commit f48072b21f0ddcf01b4fb36b1346b7557efcce8b
Author: Jaime <31...@users.noreply.github.com>
AuthorDate: Fri Jun 10 09:45:56 2022 +0800

    [SCB-2535] Bump brave.version from 5.6.11 to 5.13.9 (#3011)
---
 dependencies/default/pom.xml                       |  2 +-
 ...nAdapter.java => HttpClientRequestWrapper.java} | 49 +++++++++++-------
 ...Adapter.java => HttpClientResponseWrapper.java} | 59 ++++++++++++++--------
 ...onAdapter.java => HttpServeRequestWrapper.java} | 40 ++++++++-------
 ...Adapter.java => HttpServerResponseWrapper.java} | 59 ++++++++++++++--------
 .../tracing/zipkin/TracingConfiguration.java       | 12 +++--
 .../tracing/zipkin/ZipkinConsumerDelegate.java     | 17 +++++--
 .../tracing/zipkin/ZipkinProviderDelegate.java     | 17 +++++--
 .../tests/tracing/TraceContextConfig.java          |  2 +-
 .../tracing/zipkin/ZipkinSpanAspectTest.java       |  3 +-
 .../tracing/zipkin/ZipkinTracingAdviserTest.java   | 14 +++--
 11 files changed, 174 insertions(+), 100 deletions(-)

diff --git a/dependencies/default/pom.xml b/dependencies/default/pom.xml
index c814dfa31..8690d4a02 100644
--- a/dependencies/default/pom.xml
+++ b/dependencies/default/pom.xml
@@ -37,7 +37,7 @@
     <aspectj.version>1.9.9.1</aspectj.version>
     <awaitility.version>4.2.0</awaitility.version>
     <assertj.version>3.23.1</assertj.version>
-    <brave.version>5.6.11</brave.version>
+    <brave.version>5.13.9</brave.version>
     <classmate.version>1.5.1</classmate.version>
     <commons-beanutils.version>1.9.4</commons-beanutils.version>
     <commons-configuration.version>1.10</commons-configuration.version>
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ProviderInvocationAdapter.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpClientRequestWrapper.java
similarity index 59%
rename from handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ProviderInvocationAdapter.java
rename to handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpClientRequestWrapper.java
index da12ab62c..a81969076 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ProviderInvocationAdapter.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpClientRequestWrapper.java
@@ -17,43 +17,54 @@
 
 package org.apache.servicecomb.tracing.zipkin;
 
-import javax.annotation.Nonnull;
+import brave.http.HttpClientRequest;
 
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.swagger.invocation.Response;
 
-import brave.http.HttpServerAdapter;
-import zipkin2.internal.Nullable;
+class HttpClientRequestWrapper extends HttpClientRequest {
 
-class ProviderInvocationAdapter extends HttpServerAdapter<Invocation, Response> {
+  private Invocation invocation;
+
+  HttpClientRequestWrapper() {
+  }
+
+  HttpClientRequestWrapper(Invocation invocation) {
+    this.invocation = invocation;
+  }
+
+  HttpClientRequestWrapper invocation(Invocation invocation) {
+    this.invocation = invocation;
+    return this;
+  }
+
+
+  @Override
+  public void header(String name, String value) {
+    invocation.addContext(name, value);
+  }
 
-  @Nullable
   @Override
-  public String method(@Nonnull Invocation invocation) {
+  public String method() {
     return invocation.getOperationMeta().getHttpMethod();
   }
 
-  @Nullable
   @Override
-  public String url(@Nonnull Invocation invocation) {
-    return invocation.getEndpoint().getEndpoint();
+  public String path() {
+    return invocation.getOperationMeta().getOperationPath();
   }
 
-  @Nullable
   @Override
-  public String path(@Nonnull Invocation request) {
-    return request.getOperationMeta().getOperationPath();
+  public String url() {
+    return invocation.getEndpoint().getEndpoint();
   }
 
-  @Nullable
   @Override
-  public String requestHeader(@Nonnull Invocation invocation, @Nonnull String key) {
-    return invocation.getContext().get(key);
+  public String header(String name) {
+    return invocation.getContext().get(name);
   }
 
-  @Nullable
   @Override
-  public Integer statusCode(@Nonnull Response response) {
-    return response.getStatusCode();
+  public Object unwrap() {
+    return invocation;
   }
 }
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpClientResponseWrapper.java
similarity index 53%
copy from handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java
copy to handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpClientResponseWrapper.java
index 1428fa8f8..3cc070505 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpClientResponseWrapper.java
@@ -17,43 +17,62 @@
 
 package org.apache.servicecomb.tracing.zipkin;
 
-import javax.annotation.Nonnull;
+import brave.http.HttpClientRequest;
+import brave.http.HttpClientResponse;
+import brave.internal.Nullable;
 
-import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.swagger.invocation.Response;
 
-import brave.http.HttpClientAdapter;
-import zipkin2.internal.Nullable;
+class HttpClientResponseWrapper extends HttpClientResponse {
+  @Nullable
+  HttpClientRequest request;
 
-class ConsumerInvocationAdapter extends HttpClientAdapter<Invocation, Response> {
+  @Nullable
+  Response response;
 
   @Nullable
-  @Override
-  public String method(@Nonnull Invocation invocation) {
-    return invocation.getOperationMeta().getHttpMethod();
+  Throwable error;
+
+  HttpClientResponseWrapper() {
+  }
+
+  HttpClientResponseWrapper(@Nullable Response response, @Nullable Throwable error) {
+    this.response = response;
+    this.error = error;
+  }
+
+  HttpClientResponseWrapper response(Response response) {
+    this.response = response;
+    return this;
+  }
+
+  HttpClientResponseWrapper throwable(Throwable error) {
+    this.error = error;
+    return this;
+  }
+
+  HttpClientResponseWrapper request(HttpClientRequest request) {
+    this.request = request;
+    return this;
   }
 
-  @Nullable
   @Override
-  public String url(@Nonnull Invocation invocation) {
-    return invocation.getEndpoint().getEndpoint();
+  public int statusCode() {
+    return response.getStatusCode();
   }
 
-  @Nullable
   @Override
-  public String path(@Nonnull Invocation request) {
-    return request.getOperationMeta().getOperationPath();
+  public Object unwrap() {
+    return response;
   }
 
-  @Nullable
   @Override
-  public String requestHeader(@Nonnull Invocation invocation, @Nonnull String key) {
-    return invocation.getContext().get(key);
+  public HttpClientRequest request() {
+    return request;
   }
 
-  @Nullable
   @Override
-  public Integer statusCode(@Nonnull Response response) {
-    return response.getStatusCode();
+  public Throwable error() {
+    return error;
   }
 }
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpServeRequestWrapper.java
similarity index 61%
copy from handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java
copy to handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpServeRequestWrapper.java
index 1428fa8f8..5503cc485 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpServeRequestWrapper.java
@@ -17,43 +17,47 @@
 
 package org.apache.servicecomb.tracing.zipkin;
 
-import javax.annotation.Nonnull;
+import brave.http.HttpServerRequest;
 
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.swagger.invocation.Response;
 
-import brave.http.HttpClientAdapter;
-import zipkin2.internal.Nullable;
+class HttpServeRequestWrapper extends HttpServerRequest {
+  private Invocation invocation;
 
-class ConsumerInvocationAdapter extends HttpClientAdapter<Invocation, Response> {
+  HttpServeRequestWrapper() {
+  }
+
+  HttpServeRequestWrapper(Invocation invocation) {
+    this.invocation = invocation;
+  }
+
+  HttpServeRequestWrapper invocation(Invocation invocation) {
+    this.invocation = invocation;
+    return this;
+  }
 
-  @Nullable
   @Override
-  public String method(@Nonnull Invocation invocation) {
+  public String method() {
     return invocation.getOperationMeta().getHttpMethod();
   }
 
-  @Nullable
   @Override
-  public String url(@Nonnull Invocation invocation) {
-    return invocation.getEndpoint().getEndpoint();
+  public String path() {
+    return invocation.getOperationMeta().getOperationPath();
   }
 
-  @Nullable
   @Override
-  public String path(@Nonnull Invocation request) {
-    return request.getOperationMeta().getOperationPath();
+  public String url() {
+    return invocation.getEndpoint().getEndpoint();
   }
 
-  @Nullable
   @Override
-  public String requestHeader(@Nonnull Invocation invocation, @Nonnull String key) {
+  public String header(String key) {
     return invocation.getContext().get(key);
   }
 
-  @Nullable
   @Override
-  public Integer statusCode(@Nonnull Response response) {
-    return response.getStatusCode();
+  public Object unwrap() {
+    return invocation;
   }
 }
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpServerResponseWrapper.java
similarity index 53%
rename from handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java
rename to handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpServerResponseWrapper.java
index 1428fa8f8..ea01bea41 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ConsumerInvocationAdapter.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/HttpServerResponseWrapper.java
@@ -17,43 +17,62 @@
 
 package org.apache.servicecomb.tracing.zipkin;
 
-import javax.annotation.Nonnull;
+import brave.http.HttpServerRequest;
+import brave.http.HttpServerResponse;
+import brave.internal.Nullable;
 
-import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.swagger.invocation.Response;
 
-import brave.http.HttpClientAdapter;
-import zipkin2.internal.Nullable;
+class HttpServerResponseWrapper extends HttpServerResponse {
+  @Nullable
+  private Response response;
 
-class ConsumerInvocationAdapter extends HttpClientAdapter<Invocation, Response> {
+  @Nullable
+  private Throwable error;
 
   @Nullable
-  @Override
-  public String method(@Nonnull Invocation invocation) {
-    return invocation.getOperationMeta().getHttpMethod();
+  private HttpServerRequest request;
+
+  HttpServerResponseWrapper() {
+  }
+
+  HttpServerResponseWrapper(Response response, Throwable error) {
+    this.response = response;
+    this.error = error;
+  }
+
+  HttpServerResponseWrapper response(Response response) {
+    this.response = response;
+    return this;
+  }
+
+  HttpServerResponseWrapper request(HttpServerRequest request) {
+    this.request = request;
+    return this;
+  }
+
+  HttpServerResponseWrapper error(Throwable error) {
+    this.error = error;
+    return this;
   }
 
-  @Nullable
   @Override
-  public String url(@Nonnull Invocation invocation) {
-    return invocation.getEndpoint().getEndpoint();
+  public int statusCode() {
+    return response.getStatusCode();
   }
 
-  @Nullable
   @Override
-  public String path(@Nonnull Invocation request) {
-    return request.getOperationMeta().getOperationPath();
+  public Object unwrap() {
+    return response;
   }
 
-  @Nullable
   @Override
-  public String requestHeader(@Nonnull Invocation invocation, @Nonnull String key) {
-    return invocation.getContext().get(key);
+  public HttpServerRequest request() {
+    return request;
   }
 
-  @Nullable
   @Override
-  public Integer statusCode(@Nonnull Response response) {
-    return response.getStatusCode();
+  public Throwable error() {
+    return error;
   }
 }
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java
index 9f0c1a8a8..3665dd871 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/TracingConfiguration.java
@@ -41,6 +41,7 @@ import zipkin2.codec.SpanBytesEncoder;
 import zipkin2.reporter.AsyncReporter;
 import zipkin2.reporter.Reporter;
 import zipkin2.reporter.Sender;
+import zipkin2.reporter.brave.AsyncZipkinSpanHandler;
 import zipkin2.reporter.okhttp3.OkHttpSender;
 
 @Configuration
@@ -59,8 +60,8 @@ class TracingConfiguration {
     String path = MessageFormat.format(CONFIG_TRACING_COLLECTOR_PATH, apiVersion);
     return OkHttpSender.create(
         dynamicProperties.getStringProperty(
-            CONFIG_TRACING_COLLECTOR_ADDRESS,
-            DEFAULT_TRACING_COLLECTOR_ADDRESS)
+                CONFIG_TRACING_COLLECTOR_ADDRESS,
+                DEFAULT_TRACING_COLLECTOR_ADDRESS)
             .trim()
             .replaceAll("/+$", "")
             .concat(path));
@@ -77,18 +78,19 @@ class TracingConfiguration {
 
 
   @Bean
-  Tracing tracing(Reporter<Span> reporter, DynamicProperties dynamicProperties,
+  Tracing tracing(Sender sender, DynamicProperties dynamicProperties,
       CurrentTraceContext currentTraceContext) {
     return Tracing.newBuilder()
         .localServiceName(BootStrapProperties.readServiceName())
         .currentTraceContext(currentTraceContext) // puts trace IDs into logs
-        .spanReporter(reporter)
+        .addSpanHandler(AsyncZipkinSpanHandler.create(sender))
         .build();
   }
 
   @Bean
   CurrentTraceContext currentTraceContext() {
-    return ThreadLocalCurrentTraceContext.newBuilder().addScopeDecorator(MDCScopeDecorator.create()).build();
+    return ThreadLocalCurrentTraceContext.newBuilder().addScopeDecorator(MDCScopeDecorator.newBuilder().build())
+        .build();
   }
 
   @Bean
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinConsumerDelegate.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinConsumerDelegate.java
index 13ca8feab..149dc8c6e 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinConsumerDelegate.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinConsumerDelegate.java
@@ -22,6 +22,8 @@ import org.apache.servicecomb.swagger.invocation.Response;
 
 import brave.Span;
 import brave.Tracing;
+import brave.http.HttpClientRequest;
+import brave.http.HttpClientResponse;
 import brave.http.HttpClientHandler;
 import brave.http.HttpTracing;
 import brave.propagation.Propagation.Setter;
@@ -29,27 +31,32 @@ import brave.propagation.TraceContext.Injector;
 
 class ZipkinConsumerDelegate implements ZipkinTracingDelegate {
 
-  private final HttpClientHandler<Invocation, Response> handler;
+  private final HttpClientHandler<HttpClientRequest, HttpClientResponse> handler;
 
   private final HttpTracing httpTracing;
 
   private final Injector<Invocation> injector;
 
-  @SuppressWarnings("unchecked")
+  private final HttpClientResponseWrapper responseWrapper;
+
+  private final HttpClientRequestWrapper requestWrapper;
+
   ZipkinConsumerDelegate(HttpTracing httpTracing) {
     this.httpTracing = httpTracing;
     this.injector = httpTracing.tracing().propagation().injector(injector());
-    this.handler = HttpClientHandler.create(httpTracing, new ConsumerInvocationAdapter());
+    this.handler = HttpClientHandler.create(httpTracing);
+    this.responseWrapper = new HttpClientResponseWrapper();
+    this.requestWrapper = new HttpClientRequestWrapper();
   }
 
   @Override
   public Span createSpan(Invocation invocation) {
-    return handler.handleSend(injector, invocation);
+    return handler.handleSend(requestWrapper.invocation(invocation));
   }
 
   @Override
   public void onResponse(Span span, Response response, Throwable error) {
-    handler.handleReceive(response, error, span);
+    handler.handleReceive(responseWrapper.response(response).throwable(error).request(requestWrapper), span);
   }
 
   @Override
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinProviderDelegate.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinProviderDelegate.java
index 9a8a58e5b..c0ff43970 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinProviderDelegate.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinProviderDelegate.java
@@ -26,6 +26,8 @@ import org.slf4j.LoggerFactory;
 
 import brave.Span;
 import brave.Tracing;
+import brave.http.HttpServerRequest;
+import brave.http.HttpServerResponse;
 import brave.http.HttpServerHandler;
 import brave.http.HttpTracing;
 import brave.propagation.Propagation.Getter;
@@ -34,12 +36,16 @@ import brave.propagation.TraceContext.Extractor;
 class ZipkinProviderDelegate implements ZipkinTracingDelegate {
   private static final Logger LOG = LoggerFactory.getLogger(ZipkinProviderDelegate.class);
 
-  private final HttpServerHandler<Invocation, Response> handler;
+  private final HttpServerHandler<HttpServerRequest, HttpServerResponse> handler;
 
   private final HttpTracing httpTracing;
 
   private final Extractor<Invocation> extractor;
 
+  private final HttpServeRequestWrapper requestWrapper;
+
+  private final HttpServerResponseWrapper responseWrapper;
+
   public static final String SPAN_ID_HEADER_NAME = "X-B3-SpanId";
 
   public static final String TRACE_ID_HEADER_NAME = Const.TRACE_ID_NAME;
@@ -54,11 +60,12 @@ class ZipkinProviderDelegate implements ZipkinTracingDelegate {
     return extracted;
   };
 
-  @SuppressWarnings("unchecked")
   ZipkinProviderDelegate(HttpTracing httpTracing) {
     this.httpTracing = httpTracing;
     this.extractor = httpTracing.tracing().propagation().extractor(extractor());
-    this.handler = HttpServerHandler.create(httpTracing, new ProviderInvocationAdapter());
+    this.handler = HttpServerHandler.create(httpTracing);
+    this.requestWrapper = new HttpServeRequestWrapper();
+    this.responseWrapper = new HttpServerResponseWrapper();
   }
 
   @Override
@@ -68,12 +75,12 @@ class ZipkinProviderDelegate implements ZipkinTracingDelegate {
 
   @Override
   public Span createSpan(Invocation invocation) {
-    return handler.handleReceive(extractor, invocation);
+    return handler.handleReceive(requestWrapper.invocation(invocation));
   }
 
   @Override
   public void onResponse(Span span, Response response, Throwable error) {
-    handler.handleSend(response, error, span);
+    handler.handleSend(responseWrapper.response(response).error(error).request(requestWrapper), span);
   }
 
   @Override
diff --git a/integration-tests/test-common/src/test/java/org/apache/servicecomb/tests/tracing/TraceContextConfig.java b/integration-tests/test-common/src/test/java/org/apache/servicecomb/tests/tracing/TraceContextConfig.java
index d284c2524..24b0009c7 100644
--- a/integration-tests/test-common/src/test/java/org/apache/servicecomb/tests/tracing/TraceContextConfig.java
+++ b/integration-tests/test-common/src/test/java/org/apache/servicecomb/tests/tracing/TraceContextConfig.java
@@ -22,7 +22,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
 
-import brave.internal.HexCodec;
+import brave.internal.codec.HexCodec;
 import brave.propagation.CurrentTraceContext;
 import brave.propagation.TraceContext;
 
diff --git a/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinSpanAspectTest.java b/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinSpanAspectTest.java
index a909a7c4f..acccdc3fb 100644
--- a/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinSpanAspectTest.java
+++ b/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinSpanAspectTest.java
@@ -47,6 +47,7 @@ import brave.Tracing;
 import brave.propagation.StrictScopeDecorator;
 import brave.propagation.ThreadLocalCurrentTraceContext;
 import zipkin2.Span;
+import zipkin2.reporter.brave.ZipkinSpanHandler;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = {ZipkinSpanTestApplication.class, TracingConfig.class})
@@ -129,7 +130,7 @@ public class ZipkinSpanAspectTest {
       return Tracing.newBuilder()
           .currentTraceContext(
               ThreadLocalCurrentTraceContext.newBuilder().addScopeDecorator(StrictScopeDecorator.create()).build())
-          .spanReporter(spans::add)
+          .addSpanHandler(ZipkinSpanHandler.create(spans::add))
           .build();
     }
   }
diff --git a/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java b/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java
index 604abc1c2..5b68f7324 100644
--- a/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java
+++ b/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java
@@ -47,8 +47,11 @@ import brave.Tracer.SpanInScope;
 import brave.Tracing;
 import brave.propagation.StrictScopeDecorator;
 import brave.propagation.ThreadLocalCurrentTraceContext;
+
 import org.junit.jupiter.api.Assertions;
 
+import zipkin2.reporter.brave.ZipkinSpanHandler;
+
 public class ZipkinTracingAdviserTest {
   private static final int nThreads = 10;
 
@@ -66,10 +69,10 @@ public class ZipkinTracingAdviserTest {
 
   private final Tracing tracing = Tracing.newBuilder()
       .currentTraceContext(
-          ThreadLocalCurrentTraceContext.newBuilder().addScopeDecorator(StrictScopeDecorator.create()).build()).
-          spanReporter(e -> traces.computeIfAbsent(e.traceId(), id -> new ConcurrentLinkedDeque<>()).
-              add(e)).
-          build();
+          ThreadLocalCurrentTraceContext.newBuilder().addScopeDecorator(StrictScopeDecorator.create()).build())
+      .addSpanHandler(ZipkinSpanHandler.create(
+          e -> traces.computeIfAbsent(e.traceId(), id -> new ConcurrentLinkedDeque<>()).add(e)))
+      .build();
 
   private final ZipkinTracingAdviser tracingAdviser = new ZipkinTracingAdviser(tracing.tracer());
 
@@ -105,7 +108,8 @@ public class ZipkinTracingAdviserTest {
 
     zipkin2.Span span = traces.values().iterator().next().poll();
     Assertions.assertEquals(spanName, span.name());
-    MatcherAssert.assertThat(tracedValues(span), containsInAnyOrder(this.getClass().getCanonicalName(), "RuntimeException: oops"));
+    MatcherAssert.assertThat(tracedValues(span),
+        containsInAnyOrder(this.getClass().getCanonicalName(), "RuntimeException: oops"));
   }
 
   @SuppressWarnings({"unused", "try"})