基本概念
在SkyWalking链路追踪中,Trace(追踪)是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。
具体来说,Trace包含了一系列的span(跨度),每个span代表了一个组件的调用或操作。一个span会记录下该组件的开始时间、结束时间、耗时、操作类型等信息。通过组合多个Span,就可以构成一个完整的Trace,描述了请求在分布式系统中的流转过程。
Trace的概念在分布式系统中非常重要,它可以帮助开发人员跟踪请求的路径,了解每个组件的耗时情况,从而定位性能瓶颈和系统故障。通过分析Trace数据,开发人员可以发现系统中的瓶颈点,并进行调优和优化,以提升系统的性能和稳定性。
因此,Trace在SkyWalking链路追踪中是一个核心概念,它提供了对请求或操作完整路径的可视化和分析,帮助开发人员更好地理解和优化分布式系统的性能。
理解:一条完整的链路就是一个trace,用来描述一条完成的链路。
图解:
图中的分布式请求处理完毕用户,从用户发送请求到返回给用户相应,这就为一条完整的链路也就是一个Trace。
Trace架构体系
基本体系:
在SkyWalking链路追踪中,Trace(追踪)是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。
具体来说,Trace包含了一系列的span(跨度),每个Span代表了一个组件的调用或操作。一个Span会记录下该组件的开始时间、结束时间、耗时、操作类型等信息。通过组合多个Span,就可以构成一个完整的Trace,描述了请求在分布式系统中的流转过程。
Trace的概念在分布式系统中非常重要,它可以帮助开发人员跟踪请求的路径,了解每个组件的耗时情况,从而定位性能瓶颈和系统故障。通过分析Trace数据,开发人员可以发现系统中的瓶颈点,并进行调优和优化,以提升系统的性能和稳定性。
因此,Trace在SkyWalking链路追踪中是一个核心概念,它提供了对请求或操作完整路径的可视化和分析,帮助开发人员更好地理解和优化分布式系统的性能。
关联体系(span):
在链路追踪中,Trace(追踪)与Span(跨度)之间有三种主要的关系类型,包括:
-
单个Trace包含多个Span(One Trace, Multiple Spans):一个Trace代表了一次请求或操作的完整路径,由多个Span组成。每个Span代表一个组件的调用或操作。
-
Span属于同一个Trace(Spans belong to the same Trace):当多个Span被纳入到同一个Trace中时,它们共享同一个Trace ID,表示它们属于同一个请求或操作。Trace ID用于标识整个Trace,而Span ID用于标识各个Span。
-
Span之间存在父子关系(Parent-Child relationship between Spans):在一个Trace中,Span之间可以存在父子关系,表示调用链路的嵌套关系。父Span调用了一个或多个子Span,形成了父子关系。父Span会包含一个或多个子Span
以上是span与trace之间的关系类型。
Trace属性
-
Trace ID(追踪标识):每个Trace都有一个唯一的Trace ID,用于标识整个Trace。Trace ID可以在整个分布式系统中跨越多个组件和服务,帮助我们在调用链路中跟踪请求和操作。
-
Span ID(跟踪分段标识):每个Span都有一个唯一的Span ID,用于标识这个Span。Span ID在一个Trace中是唯一的,可用于识别和追踪Span。
-
时间戳(Timestamp):每个Span都会记录开始时间和结束时间的时间戳。这些时间戳用于计算Span的持续时间以及在整个Trace中的时间顺序。
-
操作(Operation):每个Span代表一个具体的操作或调用,比如搜索商品、添加到购物车等。
-
标签(Tags):我们可以给Span添加标签来附加更多的元数据信息,比如请求的URL、响应状态码、用户ID等。这些标签可以帮助我们更好地理解Span的上下文和内容。
-
父Span ID(Parent Span ID):如果一个Span是另一个Span的子Span,那么它会包含父Span ID来建立父子关系。