链路追踪日记3-链路追踪简单描述和总结

前面这些是比较官方的描述,最后的总结值得看看,真的!

定义:

链路追踪是一种追踪分布式系统中 请求处理过程 的技术。它通过记录所有请求经过的节点和处理时间来帮助开发快速定位问题。

功能:

记录请求流程:链路追踪可以记录请求从客户端出发,经过的所有节点,最后达到服务端并返回响应的完整流程;
性能分析:可以记录每个服务节点的处理时间和调用次数
错误和异常追踪:可以记录每个服务节点的错误和异常情况(这个是日志记录的)
可视化展示:链路追踪工具通常还提供可视化展示界面,将链路以图形化方式展示

主要作用:

优化系统性能:通过记录下来的请求处理时间,帮助开发找出性能瓶颈,进行针对性优化。
简化故障排查:可以使开发清晰地了解请求流程过程,从而简化故障排除过程(主要通过tracceId,就是logback.xml配置里的[%X{tid}]。对于一个请求,涉及到的所有服务共用一个traceId,这样通过tracceId获取整个链路的日志,快速定位问题)。
其他作用略

关键术语:

Trace:表示一次分布式请求的完整调用链路,即一次跨越多个服务的网络调用过程。
Span:表示一次服务调用事件,是组成Trace的最小单元。用于记录请求在每一跳的接口方法上执行了什么动作、耗时多久、执行状态是成功还是失败等信息。

属性:

TraceID:全局唯一的链路标识,用于关联整个Trace的所有Span。
SpanID:Span的唯一标识符,用于区分同一个Trace中的不同Span,在分布式系统中,请求链路可能会涉及多个组件和服务,每个组件对应一个Span。为了跟踪和关联不同的Span,每个Span都会分配一个唯一的spanId。
Operation Name:描述当前接口的行为语义,如/api/createOrder代表执行了一次创建订单的动作。
SpanId/ParentSpanId:用于标识接口调用的层级关系,从而还原Trace内部的层次调用关系。
Start/FinishTime:接口调用的开始和结束时间,通过计算两者差值可得出调用耗时。
StatusCode:标识当次调用的响应状态,即成功或失败。
Tags & Events:调用附加信息,Tags用于扩展语义,描述接口调用的具体属性;Events则用于记录不需要透传的事件信息。
采样率:为了降低性能损耗和存储成本,通常不会记录所有请求的Trace信息,而是采用抽样的方式,只记录部分请求的Trace信息。这个抽样的比例即为采样率。
分类:
固定采样率模式:设置固定的采样百分比,例如采样率为10%,则只记录10%的请求的Trace信息。
可变自适应采样机制:采样率不固定,根据系统流量负载自动调整,低流量时提高采样率,高流量时降低采样率。
链路拓扑:将全局或某一入口服务的所有调用链路进行汇总,聚合为链路拓扑大图,用于分析当前链路的性能瓶颈点、易故障点等
链路追踪系统:常见的链路追踪系统包括Zipkin、Jaeger、SkyWalking等,它们提供了链路
追踪的完整解决方案,包括数据的收集、存储、分析和展示等功能。

其他&&整体总结

1、链路追踪是什么
链路追踪是一种追踪技术。在分布式系统中,追踪请求的调用链路:比如服务A->服务B->服务E->服务C,通过工具提供的可视化界面能看到图形展示;追踪请求的处理:主要是追踪处理时间。具体的业务处理情况,自然有日志打印。
2、链路追踪怎么使用起来的(SkyWalking)
1、下载和部署SkyWalking(使用SkyWalking第一步,需要有SkyWalking)
2、配置agent.config文件(使用SkyWalking第二步,对SkyWalking属性定义一下)
…。…配置 服务名称(agent.service_name):名称将在SkyWalking的监控界面中显示。
…。…配置 收集器地址(collector.backend_service):设置SkyWalking OAP(Observability Analysis Platform)服务端的地址,Agent会将监控数据发送到这个地址(logback.xml的appender有涉及)。
…。…配置 其他
3、配置启动脚本的SkyWalking参数(使用SkyWalking第三步,把SkyWalking和项目联系起来)
…。…在项目启动脚本deploy.sh里面使用-javaagenrt配置skywalking-agent.jar和相关参数(skywalking通过-javaagent参数在JVM启动时加载,从而实现对应用的无侵入式监控,如果不配置那就不会加载,不加载就用不了。)
4、在pom.xml引入依赖(SkyWalking有了,SkyWalking和项目挂钩了。具体使用需要导个依赖包)
5、配置logback.xml文件(在链路追踪日记2)。这里是具体使用SkyWalking。在日志收集的时候,通过依赖包的TraceIdMDCPatternLogbackLayout,把traceId塞到日志[%X{tid}]里。
6、日志效果如图在这里插入图片描述
3、最常见常用的就是TraceID,其他的暂时接触不深
4、更深入的源码和原理,需要好好梳理理解,再输出文档。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值