【skywalking学习-2-集成】

skywalking学习-2-集成

  • 1. 说明
  • 2. 前提条件
  • 3. maven依赖
  • 4. 链路集成
    • 4.1 启动参数修改
    • 4.2 测试验证
  • 5. 日志集成
    • 5.1 gRPC传输日志方式集成
    • 5.2 文件传输日志方式集成
    • 5.3 测试验证

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-简介】中说明,此处不再赘述)

你可能感兴趣的:(skywalking学习,skywalking,学习,java)