如何在Spring Cloud Sleuth中标记跨度的子树?或者,如何细分痕迹?



当发送者发送帖子时,我需要通知多个订阅者。在这种情况下,发送者发送一个post。是一个HTTP post,并创建一个trace.

我的目标:当查看我的日志时,我将知道创建此日志通知的方法是哪个订阅者。

我天真的想法是:对于每一个"通知订阅者a"、"通知订阅者b"等,它们都是spans的一个子树。如果我能把tag赋给这些张成的子树那么我就完成了

然而,我不知道该怎么做。或者,还有其他方法可以实现我的目标吗?

谢谢!

如果我理解了您在这里试图实现的目标,那就是Sleuth的默认行为,请查看文档中的trace-span和父子跨度关系。

您唯一需要做的就是在每次通知订阅者时创建一个新的Span。有多种方法可以做到这一点,请参阅文档(例如:tracer.withSpan,@NewSpan)。

这是一个假想的例子:

@GetMapping("/something") // Sleuth has already created a span for your endpoint
public void something() {
subscribers.forEach(subscriber -> notify(subscriber, new Event("foo")));
}
@NewSpan // This does the trick
public void notify(Subscriber subscriber, Event event) {
subscriber.notify(event);
}

如果你想给你的span加标签,请点击我上面的文档链接,它会告诉你如何加标签。

相关内容

  • 没有找到相关文章

最新更新