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(); }
以上内容是否对您有帮助:
更多建议: