当前位置: 首页 > news >正文

SkyWalking链路追踪中Trace概念以及Trace与span的关系

基本概念

在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(跨度)之间有三种主要的关系类型,包括:

  1. 单个Trace包含多个Span(One Trace, Multiple Spans):一个Trace代表了一次请求或操作的完整路径,由多个Span组成。每个Span代表一个组件的调用或操作。

  2. Span属于同一个Trace(Spans belong to the same Trace):当多个Span被纳入到同一个Trace中时,它们共享同一个Trace ID,表示它们属于同一个请求或操作。Trace ID用于标识整个Trace,而Span ID用于标识各个Span。

  3. Span之间存在父子关系(Parent-Child relationship between Spans):在一个Trace中,Span之间可以存在父子关系,表示调用链路的嵌套关系。父Span调用了一个或多个子Span,形成了父子关系。父Span会包含一个或多个子Span

以上是span与trace之间的关系类型。

Trace属性

  1. Trace ID(追踪标识):每个Trace都有一个唯一的Trace ID,用于标识整个Trace。Trace ID可以在整个分布式系统中跨越多个组件和服务,帮助我们在调用链路中跟踪请求和操作。

  2. Span ID(跟踪分段标识):每个Span都有一个唯一的Span ID,用于标识这个Span。Span ID在一个Trace中是唯一的,可用于识别和追踪Span。

  3. 时间戳(Timestamp):每个Span都会记录开始时间和结束时间的时间戳。这些时间戳用于计算Span的持续时间以及在整个Trace中的时间顺序。

  4. 操作(Operation):每个Span代表一个具体的操作或调用,比如搜索商品、添加到购物车等。

  5. 标签(Tags):我们可以给Span添加标签来附加更多的元数据信息,比如请求的URL、响应状态码、用户ID等。这些标签可以帮助我们更好地理解Span的上下文和内容。

  6. 父Span ID(Parent Span ID):如果一个Span是另一个Span的子Span,那么它会包含父Span ID来建立父子关系。

 

补充说明链接:

span概念:SkyWalking链路追踪中span全解_艺舟先生的博客-CSDN博客

http://www.lryc.cn/news/98703.html

相关文章:

  • 美容店预约小程序制作教程详解
  • 什么是内存泄漏及如何防护内存泄漏
  • 【libuv】httpserver启用ssl 及 播放的日志打印
  • 13、ffmpeg使用nvidia显卡对OAK深度相机进行解码和编码
  • 自动化测试如何做?搭建接口自动化框架从0到1实战(超细)
  • 安装Python之后 安装库报错 There was an error checking the latest version of pip.
  • "科技与狠活"企业级无代码开发MES系统,一周实现数字化
  • 超实用的品牌软文推广方案分享,纯干货
  • 网络安全(黑客)8大工具
  • 重启Linux服务器 Oracle 数据库步骤
  • kaggle新赛:Bengali.AI 语音识别大赛赛题解析
  • 解放Linux内存:释放缓存(linux释放缓存)
  • 前端跨域解决方案
  • 脚手架(vue-cli)的安装详细教程
  • yolov5 onnx模型 转为 rknn模型
  • Mybatis-Flex
  • C++ | 红黑树以及map与set的封装
  • 逻辑斯特回归
  • OpenCV 算法解析
  • springboot创建并配置环境(一) - 创建环境
  • 2023JAVA 架构师面试 130 题含答案:JVM+spring+ 分布式 + 并发编程》...
  • layui手机端上传文件时返回404 Not Found的解决方案(client_body_temp权限设置)
  • 网络编程知识
  • 线性神经网路——线性回归随笔【深度学习】【PyTorch】【d2l】
  • js实现多种按钮
  • getopt函数(未更新完)
  • SpringCloud学习路线(9)——服务异步通讯RabbitMQ
  • postcss-pxtorem适配插件动态配置rootValue(根据文件路径名称,动态改变vue.config里配置的值)
  • 代码随想录算法训练营第二十三天 | 额外题目系列
  • UiAutomator