分布式追踪:Span的创建、配置与异步任务处理
1. Span的创建与配置
在分布式追踪中,Span是基本的追踪单元。默认情况下,Span被创建为内部(INTERNAL)类型。一旦Span被创建,其类型(SpanKind)就不能被修改,但可以在创建时指定。以下是一个创建SERVER类型Span的示例:
Span span = tracer.spanBuilder("/api/v1")
.setSpanKind(SpanKind.SERVER)
.startSpan();
另外,Span链接(span links)列表只能在Span创建时进行配置。链接可以用于逻辑上连接两个或多个Span,这些Span可能在不同的追踪中,它们之间有某种关联但没有因果关系。例如,启动一个异步任务,且该任务的结果不影响当前操作时,可以将其分离到不同的追踪中,并将描述该任务的Span链接到发起操作的Span上。示例代码如下:
Span span = tracer.spanBuilder("linkedSpan")
.setNoParent()
.addLink(Span.current().getSpanContext(),
Attributes.builder().put("submitter", "mainMethod").build())
.startSpan();
addLink() 方法可以多次调用,从而为创建的Span添加多个链接。可以选择是否添加
Span创建与异步追踪详解
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



