一 新建项目microservice-simple-provider-user-trace
二 为项目添加以下依赖spring-cloud-starter-sleuth
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
</dependencies>
三 修改application.yml
server:
port: 8000
spring:
jpa:
generate-ddl: false
show-sql: true
hibernate:
ddl-auto: none
datasource: # 指定数据源
platform: h2 # 指定数据源类型
schema: classpath:schema.sql # 指定h2数据库的建表脚本
data: classpath:data.sql # 指定h2数据库的数据脚本
application:
name: microservice-provider-user
logging:
level:
root: INFO
org.springframework.cloud.sleuth: DEBUG
# org.springframework.web.servlet.DispatcherServlet: DEBUG
这样就整合好Sleuth了。
用同样的方法新建一个项目microservice-simple-consumer-movie-trace
四 测试
1 启动microservice-simple-provider-user-trace
2 访问http://localhost:8000/1,控制台会输出类似如下的日志:
2018-07-03 21:49:20.632 DEBUG [microservice-provider-user,,,] 13456 --- [nio-8000-exec-5] o.s.c.sleuth.instrument.web.TraceFilter : Received a request to uri [/1] that should not be sampled [false]
2018-07-03 21:49:20.632 DEBUG [microservice-provider-user,d489de9a561ccdb9,d489de9a561ccdb9,false] 13456 --- [nio-8000-exec-5] o.s.c.sleuth.instrument.web.TraceFilter : No parent span present - creating a new span
2018-07-03 21:49:20.637 DEBUG [microservice-provider-user,d489de9a561ccdb9,d489de9a561ccdb9,false] 13456 --- [nio-8000-exec-5] o.s.c.s.i.web.TraceHandlerInterceptor : Handling span [Trace: d489de9a561ccdb9, Span: d489de9a561ccdb9, Parent: null, exportable:false]
2018-07-03 21:49:20.638 DEBUG [microservice-provider-user,d489de9a561ccdb9,d489de9a561ccdb9,false] 13456 --- [nio-8000-exec-5] o.s.c.s.i.web.TraceHandlerInterceptor : Adding a method tag with value [findById] to a span [Trace: d489de9a561ccdb9, Span: d489de9a561ccdb9, Parent: null, exportable:false]
2018-07-03 21:49:20.638 DEBUG [microservice-provider-user,d489de9a561ccdb9,d489de9a561ccdb9,false] 13456 --- [nio-8000-exec-5] o.s.c.s.i.web.TraceHandlerInterceptor : Adding a class tag with value [UserController] to a span [Trace: d489de9a561ccdb9, Span: d489de9a561ccdb9, Parent: null, exportable:false]
Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.balance as balance3_0_0_, user0_.name as name4_0_0_, user0_.username as username5_0_0_ from user user0_ where user0_.id=?
2018-07-03 21:49:20.642 DEBUG [microservice-provider-user,d489de9a561ccdb9,d489de9a561ccdb9,false] 13456 --- [nio-8000-exec-5] o.s.c.sleuth.instrument.web.TraceFilter : Closing the span [Trace: d489de9a561ccdb9, Span: d489de9a561ccdb9, Parent: null, exportable:false] since the response was successful
3 启动项目microservice-simple-consumer-movie-trace
4 访问
http://localhost:8010/user/1,会发现两个项目都有日志。
user微服务:
2018-07-03 21:54:07.501 DEBUG [microservice-provider-user,,,] 13456 --- [io-8000-exec-10] o.s.c.sleuth.instrument.web.TraceFilter : Received a request to uri [/1] that should not be sampled [true]
2018-07-03 21:54:07.502 DEBUG [microservice-provider-user,,,] 13456 --- [io-8000-exec-10] o.s.c.sleuth.instrument.web.TraceFilter : Found a parent span [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false] in the request
2018-07-03 21:54:07.503 DEBUG [microservice-provider-user,197de657e7e8d9bb,03aff383d19d2d2c,false] 13456 --- [io-8000-exec-10] o.s.c.sleuth.instrument.web.TraceFilter : Parent span is [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false]
2018-07-03 21:54:07.517 DEBUG [microservice-provider-user,197de657e7e8d9bb,03aff383d19d2d2c,false] 13456 --- [io-8000-exec-10] o.s.c.s.i.web.TraceHandlerInterceptor : Handling span [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false]
2018-07-03 21:54:07.518 DEBUG [microservice-provider-user,197de657e7e8d9bb,03aff383d19d2d2c,false] 13456 --- [io-8000-exec-10] o.s.c.s.i.web.TraceHandlerInterceptor : Adding a method tag with value [findById] to a span [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false]
2018-07-03 21:54:07.519 DEBUG [microservice-provider-user,197de657e7e8d9bb,03aff383d19d2d2c,false] 13456 --- [io-8000-exec-10] o.s.c.s.i.web.TraceHandlerInterceptor : Adding a class tag with value [UserController] to a span [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false]
Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.balance as balance3_0_0_, user0_.name as name4_0_0_, user0_.username as username5_0_0_ from user user0_ where user0_.id=?
2018-07-03 21:54:07.524 DEBUG [microservice-provider-user,197de657e7e8d9bb,03aff383d19d2d2c,false] 13456 --- [io-8000-exec-10] o.s.c.sleuth.instrument.web.TraceFilter : Trying to send the parent span [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false] to Zipkin
2018-07-03 21:54:07.524 DEBUG [microservice-provider-user,197de657e7e8d9bb,03aff383d19d2d2c,false] 13456 --- [io-8000-exec-10] o.s.c.sleuth.instrument.web.TraceFilter : Closing the span [Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false] since the response was successful
电影微服务:
2018-07-03 21:54:07.267 INFO [microservice-consumer-movie,,,] 864 --- [nio-8010-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-07-03 21:54:07.267 INFO [microservice-consumer-movie,,,] 864 --- [nio-8010-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2018-07-03 21:54:07.310 INFO [microservice-consumer-movie,,,] 864 --- [nio-8010-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 42 ms
2018-07-03 21:54:07.319 DEBUG [microservice-consumer-movie,,,] 864 --- [nio-8010-exec-1] o.s.c.sleuth.instrument.web.TraceFilter : Received a request to uri [/user/1] that should not be sampled [false]
2018-07-03 21:54:07.323 DEBUG [microservice-consumer-movie,197de657e7e8d9bb,197de657e7e8d9bb,false] 864 --- [nio-8010-exec-1] o.s.c.sleuth.instrument.web.TraceFilter : No parent span present - creating a new span
2018-07-03 21:54:07.363 DEBUG [microservice-consumer-movie,197de657e7e8d9bb,197de657e7e8d9bb,false] 864 --- [nio-8010-exec-1] o.s.c.s.i.web.TraceHandlerInterceptor : Handling span [Trace: 197de657e7e8d9bb, Span: 197de657e7e8d9bb, Parent: null, exportable:false]
2018-07-03 21:54:07.364 DEBUG [microservice-consumer-movie,197de657e7e8d9bb,197de657e7e8d9bb,false] 864 --- [nio-8010-exec-1] o.s.c.s.i.web.TraceHandlerInterceptor : Adding a method tag with value [findById] to a span [Trace: 197de657e7e8d9bb, Span: 197de657e7e8d9bb, Parent: null, exportable:false]
2018-07-03 21:54:07.364 DEBUG [microservice-consumer-movie,197de657e7e8d9bb,197de657e7e8d9bb,false] 864 --- [nio-8010-exec-1] o.s.c.s.i.web.TraceHandlerInterceptor : Adding a class tag with value [MovieController] to a span [Trace: 197de657e7e8d9bb, Span: 197de657e7e8d9bb, Parent: null, exportable:false]
2018-07-03 21:54:07.465 DEBUG [microservice-consumer-movie,197de657e7e8d9bb,03aff383d19d2d2c,false] 864 --- [nio-8010-exec-1] .w.c.AbstractTraceHttpRequestInterceptor : Starting new client span [[Trace: 197de657e7e8d9bb, Span: 03aff383d19d2d2c, Parent: 197de657e7e8d9bb, exportable:false]]
2018-07-03 21:54:07.602 DEBUG [microservice-consumer-movie,197de657e7e8d9bb,197de657e7e8d9bb,false] 864 --- [nio-8010-exec-1] o.s.c.sleuth.instrument.web.TraceFilter : Closing the span [Trace: 197de657e7e8d9bb, Span: 197de657e7e8d9bb, Parent: null, exportable:false] since the response was successful
2018-07-03 21:54:07.618 DEBUG [microservice-consumer-movie,,,] 864 --- [nio-8010-exec-1] o.s.c.sleuth.instrument.web.TraceFilter : Received a request to uri [/favicon.ico] that should not be sampled [true]
2018-07-03 21:54:07.620 DEBUG [microservice-consumer-movie,e30b4ff630adc3d3,e30b4ff630adc3d3,false] 864 --- [nio-8010-exec-1] o.s.c.sleuth.instrument.web.TraceFilter : No parent span present - creating a new span
2018-07-03 21:54:07.643 DEBUG [microservice-consumer-movie,e30b4ff630adc3d3,e30b4ff630adc3d3,false] 864 --- [nio-8010-exec-1] o.s.c.sleuth.instrument.web.TraceFilter : Closing the span [Trace: e30b4ff630adc3d3, Span: e30b4ff630adc3d3, Parent: null, exportable:false] since the response was successful