在zipkin中看不到跟踪数据

时间:2017-03-26 06:29:09

标签: instrumentation zipkin

我是zipkin和brave api的新手,用于分发追踪。我在本地主机上设置了一个zipkin服务器,通过端口9411进行设置。我已经执行了以下功能,但我的zipkin服务器中没有显示跟踪数据。有人可以指出我错过了什么吗?

public static void main(String[] args) {
    Sender sender = OkHttpSender.create("http://localhost:9411/api/v1/spans");
    Reporter reporter = AsyncReporter.builder(sender).build();

    // Now, create a tracer with the service name you want to see in Zipkin.
    Tracer tracer = Tracer.newBuilder()
            .localServiceName("my-service")
            .reporter(reporter)
            .build();
    Span twoPhase = tracer.newTrace().name("twoPhase").start();
    try {
        Span prepare = tracer.newChild(twoPhase.context()).name("prepare").start();
        try {
            System.out.print("prepare");
        } finally {
            prepare.finish();
        }
        Span commit = tracer.newChild(twoPhase.context()).name("commit").start();
        try {
            System.out.print("commit");
        } finally {
            commit.finish();
        }
    } finally {
        twoPhase.finish();
    }
}

1 个答案:

答案 0 :(得分:1)

这似乎是一个时间问题。

如果我们添加一些延迟,例如,在孩子之间跨越执行,如

Thread.sleep(1);

介于两者之间

Span prepare = tracer.newChild(twoPhase.context()).name("prepare").start();
try {                                                                
    System.out.print("prepare");                                     
} finally {                                                          
    prepare.finish();                                                
}                                                                    
Thread.sleep(1); // <<<                                                                                                                                                         
Span commit = tracer.newChild(twoPhase.context()).name("commit").start();
try {                                                                
    System.out.print("commit");                                      
} finally {                                                          
    commit.finish();                                                 
}

然后我们看到跨度:

spans

我曾经遇到类似这样的事情,之前Zipkin掉线了我(错误地)分配了错误的时间戳。

供参考和易于复制:我已设置project来复制此问题/“修复”。