cloud - sleuth 集成 zipkin
sleuth
spring cloud sleuth 是spring 用来解决分布式链路追踪的解决方案
zipkin
- 收集链路追踪信息
- 提供 restful http Api 查询
- web 管理页面
- 支持 内存,mysql, cassandra, elasticsearch 存储
- 支持 http, mq 收集数据
cloud 集成 sleuth 和 zipkin
docker 启动 Zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
cloud 集成
引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
配置 properties
spring.application.name=nacos-zipkin
spring.zipkin.base-url=http://localhost:9411/
spring.zipkin.service.name=${spring.application.name}
# 收集数据百分比 1 = 100%
spring.sleuth.sampler.probability=1
接口
@Slf4j
@RestController
public class IndexController {
@GetMapping("/index")
public String index() {
int a = 1;
log.info(">>>>>>> index {}", a);
return "index";
}
}
访问接口 http://localhost:8080/index
, 日志显示
[nacos-zipkin,e066303b5dd09fb3,e066303b5dd09fb3] 149761 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
[nacos-zipkin,e066303b5dd09fb3,e066303b5dd09fb3] 149761 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
[nacos-zipkin,e066303b5dd09fb3,e066303b5dd09fb3] 149761 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
[nacos-zipkin,e066303b5dd09fb3,e066303b5dd09fb3] 149761 --- [nio-8080-exec-1] c.x.z.zipkin.controller.IndexController : >>>>>>> index 1
可以看见已经记录了 traceId, 格式: 【applicationName, traceId, spanId】