skywalking学习-2-集成
1. 说明
此文档主要是对springboot项目集成skywalking的链路追踪和日志查询功能作说明
2. 前提条件
已经部署好了skywalkingOAP和webApp,也就是skywalking后端和前端服务,且相关配置正确
3. maven依赖
pom.xml配置如下:注意,版本需与agent探针版本一致,否则报错
这里采用的是当下最新的版本8.13.0(时间:2023年1月)
<!-- skywalking 日志记录 -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.13.0</version>
</dependency>
4. 链路集成
4.1 启动参数修改
格式:javaagent:{路径}\skywalking-agent.jar -Dskywalking.agent.service_name={服务名称}
样例:javaagent:E:\skyworking\apache-skywalking-java-agent-8.13.0\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=agg
4.2 测试验证
启动上述已集成链路的组件,并访问该组件的任意一个接口,即可在skywalking UI页面看到对应调用链的显示(已在【skywalking学习-1-简介】中说明,此处不再赘述)
5. 日志集成
此次仅针对springboot官方推荐日志框架logback作集成说明,其他像log4j、log4j2等看参考官网集成文档进行集成,步骤类似
其中logback.xml配置文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod=" 5 seconds">
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
</layout>
</encoder>
</appender>
<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.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
</layout>
</encoder>
</appender>
<appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
<file>/tmp/skywalking-logs/logback/e2e-service-provider.log</file>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>[%sw_ctx] [%level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger:%line - %msg%n</Pattern>
</layout>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="grpc-log"/>
<appender-ref ref="stdout"/>
</root>
<logger name="fileLogger" level="INFO">
<appender-ref ref="fileAppender"/>
</logger>
</configuration>
5.1 gRPC传输日志方式集成
agent探针收集日志后,通过grpc方式直接发送到skywalkingOAP,skywalkingOAP对日志数据进行相应处理,适用于日志量较小的组件
5.2 文件传输日志方式集成
agent探针收集日志后,写入到文件中,后续可通过Filebeat读取文件,发送到kafka,skywalkingOAP通过消费kafka消息对日志做相应处理,适用于日志量较大的组件,此处kafka起到削峰的作用,相对于gRPC方式,性能更佳
前提条件:Filebeat、kafka已经部署配置好,skywalkingOAP也已经配置好,详见【skywalking学习-3-部署】
5.3 测试验证
启动上述已集成日志的组件,并访问该组件的任意一个接口,即可在skywalking UI页面看到对应调用链日志的显示(已在【skywalking学习-1-简介】中说明,此处不再赘述)