如何通过 Sleuth 的不同依赖项来跟踪跨度?
How to track the span through different dependencies with Sleuth?
我正在学习如何通过所有微服务跟踪我的分布式进程。我一直在使用 Sleuth、Zipkin 和不同的微服务,效果非常好!但是当我尝试在不同依赖项之间交互的项目中执行相同操作时,我无法创建相同的行为。
这张图片显示了当前不同微服务的工作方式。
这是微服务的示意图:
这张图片显示了具有依赖项的应用程序是如何工作的。
这是具有依赖关系的应用程序图:
我想知道,是否可以使用依赖项创建与微服务相同的行为?
是的,创建跨度时可以设置服务名称。只需调用 newSpan.remoteServiceName(...)
参考@MarcinGrzejszczak的输入,我决定使用自定义跨度:
Span remoteDependency = tracer.nextSpan()
.name("dependency_name")
.start();
其中 tracer
是来自 Trace
的自动装配对象:
@Autowired
private Tracer tracer;
两个 类 都在 brave
包中
import brave.Span;
import brave.Tracer;
结果:
如果您想更详细地查看实现,这里是示例:https://github.com/juanca87/sample-traceability-microservices
我正在学习如何通过所有微服务跟踪我的分布式进程。我一直在使用 Sleuth、Zipkin 和不同的微服务,效果非常好!但是当我尝试在不同依赖项之间交互的项目中执行相同操作时,我无法创建相同的行为。
这张图片显示了当前不同微服务的工作方式。
这是微服务的示意图:
这张图片显示了具有依赖项的应用程序是如何工作的。
这是具有依赖关系的应用程序图:
我想知道,是否可以使用依赖项创建与微服务相同的行为?
是的,创建跨度时可以设置服务名称。只需调用 newSpan.remoteServiceName(...)
参考@MarcinGrzejszczak的输入,我决定使用自定义跨度:
Span remoteDependency = tracer.nextSpan()
.name("dependency_name")
.start();
其中 tracer
是来自 Trace
的自动装配对象:
@Autowired
private Tracer tracer;
两个 类 都在 brave
包中
import brave.Span;
import brave.Tracer;
结果:
如果您想更详细地查看实现,这里是示例:https://github.com/juanca87/sample-traceability-microservices