SpringCloud 连续跨度

2023-12-01 16:01 更新

有时,您不想创建一个新跨度,但想继续一个跨度。这种情况的示例如下:

  • AOP:如果在到达方面之前已经创建了一个跨度,则您可能不想创建一个新的跨度。
  • Hystrix:执行Hystrix命令很可能是当前处理的逻辑部分。实际上,它仅仅是技术实现细节,您不一定要在跟踪中将其反映为一个单独的实体。

要继续跨度,可以使用brave.Tracer,如以下示例所示:

// let's assume that we're in a thread Y and we've received
// the `initialSpan` from thread X
Span continuedSpan = this.tracer.toSpan(newSpan.context());
try {
	// ...
	// You can tag a span
	continuedSpan.tag("taxValue", taxValue);
	// ...
	// You can log an event on a span
	continuedSpan.annotate("taxCalculated");
}
finally {
	// Once done remember to flush the span. That means that
	// it will get reported but the span itself is not yet finished
	continuedSpan.flush();
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号