赞
踩
SkyWalking 全链路跟踪入门,本篇文章只是简单的对SkyWalking的基础功能进行一个演示,并搭建它
相关软件版本如下
配置文件修改
服务启动
如果服务启动没反应或报错,可以去看日志 /apache-skywalking-apm-bin/logs/oap.log
控制台端口号修改,默认是 8080,可能会冲突
启动
![
控制台
如果服务启动没反应或报错,可以去看日志 /apache-skywalking-apm-bin/logs/skywalking-webapp.log
SkyWalking在Java中使用的是字节方式植入,是完全无代码侵入的
VM options 添加 ,就是刚刚上面下的 java-agent
-javaagent:/Users/xdx/Desktop/MyTestCode/service/skywalking/skywalking-agent/skywalking-agent.jar
Environment variables 添加,指定 SkyWalking的地址
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800;-DSW_AGENT_NAME=xdx-skywalking
效果图
操作步骤(idea 2023,其它版本百度操作)
配置好后,启动服务会看到下面的日志,就说明 java-agent.jar 读取到了
随机访问几下服务的接口,再去刷新SkyWalking 控制台,就可以看到了
如果想要在SkyWalking中看到链路的日志,需要做一些配置
pom 引入
<!-- 如果想在项目代码中获取链路TraceId,则需要引入此依赖 --> <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-trace</artifactId> <version>9.2.0</version> </dependency> <!-- 自定义功能相关, 比如自定义tag --> <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-opentracing</artifactId> <version>9.2.0</version> </dependency> <!-- skywalking 日志记录 logback插件 --> <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-logback-1.x</artifactId> <version>8.8.0</version> </dependency>
logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod=" 5 seconds"> <!--控制台日志打印--> <!-- with the MDC, set %X{tid} in Pattern --> <!-- MDC是什么:MDC采用Map的方式存储上下文,线程独立的,子线程会从父线程拷贝上下文 --> <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> <!--skywalking日志上报--> <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>./logs/gateway-all.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="stdout"/> <appender-ref ref="grpc-log"/> </root> <logger name="fileLogger" level="INFO"> <appender-ref ref="fileAppender"/> </logger> </configuration>
再次请求几次就可以看到请求的日志了,会有一个全局的 traceId
通过耗时分析来找到服务慢的问题,这个功能不是一直开启的,用的时候需要先创建任务,再请求
入口
任务配置
分析结果
配置好任务后,再去请求几次接口
ES 8.x开始(docker-compose安装、kibana使用、java操作)
只需要把存储选为 ES 就可以了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。