springboot整合Sleuth链路追踪+Zipkin分析

为什么使用

Spring Cloud Sleuth为Spring云实现了分布式跟踪解决方案。 

Zipkin是Twitter开源的分布式实时数据跟踪系统(Distributed Tracking System)。

Spring Cloud Sleuth对于分布式链路的跟踪仅仅是生成一些数据,这些数据不便于人类阅读,所以我们一般把这种跟踪数据上传给Zipkin Server,由Zipkin通过UI页面统一进行数据的展示。

Sleuth 官方文档地址:Spring Cloud Sleuth

Zipkin官网地址:OpenZipkin · A distributed tracing system

基本术语

Span(跨度): 每一个调用就会产生一个

span(跨度)是一个基本工作单元,span用一个64位的id唯一标识。除id外,span还包含其他数据,例如描述、时间戳事件、键值对的注解(标签), spanId、parentId等。span被启动和停止时,记录了时间信息。初始化 span被称为"rootspan",该span的id和trace的id相等。

Trace(跟踪):每一个调用链产生一个
trace(跟踪)是一组共享"rootspan"的span组成的树状结构,trace也用一个64位的id唯一标识,trace中的所有span都共享该trace的id。

Annotation(标注):标注一个服务的一系列时间信息

Annotation(标注)用来记录事件的存在,其中,核心annotation用来定义请求的开始和结束。

CS(Client Sent客户端发送)

客户端发起一个请求,该annotation描述了span的开始。

SR(Server Received服务器端接收)

服务器端获得请求并准备处理它。如果用SR减去CS时间戳,就能得到网络延迟。

SS(Server Sent服务器端发送)

该annotation表明完成请求处理(当响应发回客户端时)。如果用SS减去SR时间戳,就能得到服务器端处理请求所需的时间。

CR(Client Received客户端接收)

客户端发起一个请求,该annotation描述了span的结束。客户端成功接收到服务器端的响应。如果CR减去CS时间戳,就能得到从客户端发送请求到服务器响应的所需的时间。

docker 安装 zipkin

docker run -d -p 9411:9411 openzipkin/zipkin

引入依赖

<!--zipkin 依赖也同时包含了 sleuth,可以省略 sleuth 的引用-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

配置

application.yml 

spring:
  zipkin:
    base-url: http://192.168.19.128:9411/	# zipkin 服务器的地址
    discovery-client-enabled: false # 关闭服务发现,否则 Spring Cloud 会把 zipkin 的 url 当做服务名称
    sender:
      type: web # 设置使用 http 的方式传输数据
  sleuth:
    sampler:
      probability: 1  # 设置抽样采集率为 100% ,默认为 0.1 ,即 10%

测试

启动项目,测试功能。然后访问Zipkin服务地址默认端口9411。访问结果页

 

猜你喜欢

转载自blog.csdn.net/qq_29385297/article/details/127643032