5.1:链路追踪入门:Sleuth

一. Sleuth简介

  1. 什么是Sleuth?Spring Cloud Sleuth为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长。从而让我们可以很方便的理清各微服务间的调用关系

  2. 作用:做日志埋点

  3. 官方文档:http://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#sleuth-adding-project

 


二. Sleuth使用与分析

  1. 在pom.xml中添加依赖

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-sleuth</artifactId>

</dependency>

 

  1. 观察控制台打印

INFO [trace-1,f410ab57afd5c145,a9f2118fa2019684,false]

 

  1. 控制台分析

    1. 第一个值:trace-1,它记录了应用的名称,也就是application.properties中spring.application.name参数配置的属性。

    2. 第二个值:f410ab57afd5c145,Spring Cloud Sleuth生成的一个ID,称为Trace ID,它用来标识一条请求链路。一条请求链路中包含一个Trace ID,多个Span ID。

    3. 第三个值:a9f2118fa2019684,Spring Cloud Sleuth生成的另外一个ID,称为Span ID,它表示一个基本的工作单元,比如:发送一个HTTP请求。

    4. 第四个值:false,表示是否要将该信息输出到Zipkin等服务中来收集和展示。

 


三. Sleuth原理

例如:由A服务对B服务发起的请求,在发送到B服务之前sleuth会为在该请求的Header中增加实现跟踪需要的重要信息,主要有下面这几个(更多关于头信息的定义我们可以通过查看org.springframework.cloud.sleuth.Span的源码获取):

  1. X-B3-TraceId:一条请求链路(Trace)的唯一标识,必须值

  2. X-B3-SpanId:一个工作单元(Span)的唯一标识,必须值

  3. X-B3-ParentSpanId::标识当前工作单元所属的上一个工作单元,Root Span(请求链路的第一个工作单元)的该值为空

  4. X-B3-Sampled:是否被抽样输出的标志,1表示需要被输出,0表示不需要被输出

  5. X-Span-Name:工作单元的名称

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值