1 摘要
要实现精确的链路追踪,则需要针对每一次请求设置一个唯一编码,Trace ID 就是用于链路追踪的标识。本文将介绍 Skywalking 在 SpringBoot 项目中集成 Trace ID 以及配置 logback 实现日志异步上传到 Skywalking 的功能。
准备工作
Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪
2 核心 Maven 依赖
./cloud-alibaba-gateway-filter/pom.xml
./cloud-alibaba-server-provider/pom.xml
./cloud-alibaba-server-consumer/pom.xml
./cloud-alibaba-server-consumer-feign/pom.xml
<!-- skywalking toolkit -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>${skywalking.toolkit.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>${skywalking.toolkit.version}</version>
</dependency>
其中 ${skywalking.toolkit.version}
的版本为 8.7.0
3 Logback 配置
./cloud-alibaba-gateway-filter/src/main/resources/logback.xml
./cloud-alibaba-server-provider/src/main/resources/logback.xml
./cloud-alibaba-server-consumer/src/main/resources/logback.xml
./cloud-alibaba-server-consumer-feign/src/main/resources/logback.xml
<property name="FILE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss} | %-5level | %thread | %tid | %logger{50} %L\ | %msg%n" />
其中 tid
即为 Trace ID
<appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender" >
<!-- 对日志进行格式化 -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${FILE_LOG_PATTERN}</pattern>
</layout>
</encoder>
</appender>
将日志上传至 Skywalking 的配置
4 日志使用效果
控制台日志
2021-11-23 14:44:56 | INFO | http-nio-8604-exec-8 | TID:9db5a370aa5847569b036d44ce972999.707.16376498966050097 | c.l.d.s.a.s.c.f.controller.NacosConsumerController 26| /hello request data: HelloParam(name=gateway-feign-德玛西亚)
2021-11-23 14:44:56 | INFO | http-nio-8604-exec-8 | TID:9db5a370aa5847569b036d44ce972999.707.16376498966050097 | c.l.d.s.a.s.c.f.controller.NacosConsumerController 28| response: Hello,gateway-feign-德玛西亚
根据 tid 在 Skywalking 搜索日志
也可以从链路追踪界面点击查看日志
5 推荐参考资料
SpringBoot集成Skywalking和logback.xml
6 Github 源码
Gtihub 源码地址 : https://github.com/Flying9001/springBootDemo
个人公众号:404Code,分享半个互联网人的技术与思考,感兴趣的可以关注.