下载SkyWalking(推荐官网)
官网地址:https://skywalking.apache.org/downloads/
直接下载tar包:https://www.apache.org/dyn/closer.cgi/skywalking/8.6.0/apache-skywalking-apm-8.6.0.tar.gz
本地启动SkyWalking
解压缩tar包,进入apache-skywalking-apm-bin/bin目录
windows系统直接运行startup.bat(linux系统运行startup.sh);出现如下视图,表示启动成功
浏览器打开:http://localhost:8080/ 即可访问SkyWalking的管理界面
Springboot接入SkyWalking
以javaagent的方式接入,对代码无侵入
java-javaagent:/usr/skywalking/agent/skywalking-agent.jar-Dskywalking.agent.service_name=your-service-name-Dskywalking.collector.backend_service=127.0.0.1:11800
如果是用idea启动springboot项目,可在VM参数区配置
启动项目,看到如下拓扑图,即说明你的服务已被监控
日志打印trace_id
以logback为例
pom文件添加依赖
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.6.0</version></dependency><dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId></dependency>
logback配置文件添加配置
<!--控制台输出--><appendername="Console"class="ch.qos.logback.core.ConsoleAppender"><encoderclass="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layoutclass="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout"><Pattern>${logEnv}%d{yyyy-MM-ddHH:mm:ss.SSS}[%X{tid}][%thread]%-5level%logger{36}-%msg%n</Pattern></layout></encoder></appender><!--上报给logstash--><appendername="logStash"class="net.logstash.logback.appender.LogstashTcpSocketAppender"><destination>${StashUrl}</destination><encodercharset="UTF-8"class="net.logstash.logback.encoder.LogstashEncoder"><providerclass="org.apache.skywalking.apm.toolkit.log.logback.v1.x.logstash.TraceIdJsonProvider"/><customFields>{"applicationName":"${AppID}-${logEnv}"}</customFields></encoder></appender>
idea启动项目可看到控制台输出
Kibana上查看日志
通过trace_id查看调用链路
解决项目使用WebFlux框架导致trace_id无法获取的问题
比如使用了Springcloud的gateway组件
将上图中\apache-skywalking-apm-bin\agent\optional-plugins下的4个可选插件复制到 \apache-skywalking-apm-bin\agent\plugins下即可