为什么需要链路追踪
分布式服务下,请求链路信息统计,应用请求分析,和异常信息定位。把每一次分布式的请求变为成可视化观察的调用链路。
作用主要点:
- 异常信息快速定位,微服务下节点故障的定位
- 分析请求链路每个阶段过程的耗时,便于应用分析和优化。
需要注意问题点(资料 来自GO 夜读)
- 低损耗: 不能对应用的服务造成太大的影响。
- 应用透明: 程序员无需感知到链路追踪的存在。(减少代码侵入)
opentracing 简介
-
opentracing 作用
- opentracing 几个核心概念
Trace :就是指完整链路的表达,即一个请求所有经过服务的过程路径,每一条局部链路都有一个全局唯一的traceid来标识请求。
Span :服务跨度,即是表达到达传递服务中一个父和子的关系ID,来区别服务调用顺序。用对应parent id 和 相关sapn id。
-
通过注入和提取来确认Span之前的关系!通过父子关系确认调用链。
-
当每个Span finish之后
Jaeger 简介
- 关于Jaeger
基于opentracing规范的链路追踪工具。 -
关于Jaeger Client
提供对应的一个链路中生成相关的trace id 和 span id 。每一个traceid可以设定一些tags和其他一些默认的信息都会被自动的注入。如hostman,ip ,servie name