课程名称:Spring Cloud / Alibaba 微服务架构实战
课程章节:第8章-SpringCloud Sleuth 设置采样率、抽样收集策略
课程讲师:张勤一
课程内容:
1.SpringCloud Sleuth采样收集
-
收集跟踪信息有利有弊,需要根据具体情况选择合适的采样方式。
-
收集的跟踪信息越多,越能反映出系统的实际运行情况。
-
高并发场景下,大量的请求调用会产生海量的跟踪日志信息,性能开销大。
tips:
在开发环境下,尽可能的收集更多的跟踪信息,更加请求的了解应用的运行情况;在生产环境,则根据具体形况收集合适的跟踪信息,方便排查问题。
1.1 Zipkin brave自带的抽样策略
-
ProbabilityBasedSampler 采样率策略(默认策略)
- 以请求百分比的方式配置和跟踪信息,默认值为0.1,代表收集10%的请求跟踪信息。
spring.sleuth.sampler.probability=0.1
-
RateLimitingSampler 抽样策略
- 限速采集,限制每秒追踪请求的最大数量,优先级高,设置了该策略,第一种策略就会失效。
//每秒最多采集10个请求的跟踪数据 spring.sleuth.sampler.rate=10
2. SpringCloud Sleuth采样收集的实现方式
2.1 配置文件的方式
spring:
sleuth:
sampler:
# ProbabilityBasedSampler 抽样策略
probability: 1.0 # 采样比例, 1.0 表示 100%, 默认是 0.1
# RateLimitingSampler 抽样策略, 设置了限速采集, spring.sleuth.sampler.probability 属性值无效
rate: 100 # 每秒间隔接受的 trace 量
2.2 代码方式
/**
* 使用配置代码的方式设置采样率,一般配置其中一个采样策略即可。
*/
@Configuration
@Slf4j
public class SamplerConfig {
/**
* 限速采集策略
* @return
*/
@Bean
public Sampler sampler(){
return RateLimitingSampler.create(100);
}
/**
* 概率策略
* @return
*/
// @Bean
// public Sampler defaultSampler() {
// return ProbabilityBasedSampler.create(0.5f);
// }
}