tree: 20920c3db69d9942b85ec4563e8ab17ee89ef77f [path history] [tgz]
  1. tracing-common/
  2. tracing-zipkin/
  3. pom.xml

Customized Tracing

Customized tracing with Zipkin is supported to allow users to add tracing spans at points of interest.

Set Up Customized Tracing

  1. Include the following dependency
  1. Enable tracing with annotation @EnableZipkinTracing on your application entry or configuration

Import tracing.zipkin.EnableZipkinTracing package

import org.apache.servicecomb.tracing.zipkin.EnableZipkinTracing;

Add annotation @EnableZipkinTracing

public class ZipkinSpanTestApplication {
  public static void main(String[] args) {;
  1. Add new span to the point of interest with annotation @Span

Import tracing.Span package

import org.apache.servicecomb.tracing.Span;

Add annotation @Span

public class SlowRepoImpl implements SlowRepo {
  private static final Logger logger = LoggerFactory.getLogger(SlowRepoImpl.class);

  private final Random random = new Random();

  public String crawl() throws InterruptedException {"in /crawl");
    return "crawled";

That's it!

Reported Span Data

Customized tracing span includes two pieces of data:

  • span name - annotated method name
  • call.path - annotated method signature

e.g. the example SlowRepoImpl in the previous section reports the following span

span namecrawl
call.pathpublic abstract java.lang.String org.apache.servicecomb.tests.tracing.SlowRepo.crawl() throws java.lang.InterruptedException


  • Customized tracing with annotation only supports method calls in the request thread.
  • Classes with @Span must be a spring managed bean. If you want to do load-time weaving for non spring beans, you have to do it manually according to this answer.