如何使用Sleuth通过不同的依赖项跟踪跨度?

时间:2018-09-03 22:26:56

标签: logging zipkin spring-cloud-sleuth traceability

我正在学习如何通过所有微服务跟踪分布式过程。我一直在与Sleuth,Zipkin和其他微服务一起玩,并且效果很好!但是,当我尝试在项目中的不同依赖项之间进行交互时,我无法创建相同的行为。

此图显示了当前如何运行不同的微服务。 enter image description here

这是微服务的示意图: enter image description here

此图显示了具有依赖项的应用程序的工作方式。 enter image description here

这是具有依赖关系的应用程序图: enter image description here

我想知道,是否可以使用依赖关系创建与微服务相同的行为?

2 个答案:

答案 0 :(得分:0)

是的,当您创建跨度时,您可以设置服务名称。只需致电newSpan.remoteServiceName(...)

答案 1 :(得分:0)

以@MarcinGrzejszczak的输入作为参考,我使用自定义跨度进行了解析:

Span remoteDependency = tracer.nextSpan()
                              .name("dependency_name") 
                              .start();

tracerTrace的自动连线对象:

@Autowired
private Tracer tracer;

两个类都在brave包中

import brave.Span;
import brave.Tracer;

结果:

Sample

如果您想更详细地了解实现,请参见以下示例:https://github.com/juanca87/sample-traceability-microservices