-
Span: 基本工作单元,例如:发送一次RPC是一个新Span,接受一个RPC也是如此。span由一个惟一的64位ID标识,另一个64位ID标识其所属的跟踪。span还包含其他数据,比如描述、时间戳事件、键值注释(标记)、导致它们的span的ID以及进程ID(通常是IP地址)。
Span可以启动和停止,它们可以跟踪自己的时间信息。一旦创建了一个span,就必须在将来的某个时候停止它。
初始的span被称为root span,这个span的ID值等于trace ID。 -
Trace: 形成树状结构的一组span。如果您运行分布式大数据存储,trace可能由PUT请求组成。
-
Annotation: 用来记录某一事件在时间上的存在。
-
cs: Client Sent.客户端发出一个请求,这个annotation表示span的开始.
-
sr: Server Received. 服务端接受请求并开始处理。从这个时间戳中减去cs时间戳可以显示网络延迟。
-
ss: Server Sent.请求处理完成时注释(当响应被发送回客户机时)。从这个时间戳中减去sr时间戳可以显示服务器端处理请求所需的时间。
-
cr: Client Received.表示span结束。客户端已成功接收到来自服务器端的响应。从这个时间戳中减去cs时间戳,可以显示客户机从服务器接收响应所需的全部时间。
下图显示了系统中的Span和Trace,以及Zipkin注释:
标签的每一种颜色都代表一个span(从a到G共有7个跨度)。
Trace Id = X
Span Id = D
Client Sent
这说明当前span的跟踪Id设置为X, span Id设置为D。此外,Client Sent事件也发生了。
下图显示了span的父-子关系: