Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面。

我们可以在Downloads | Apache SkyWalking
https://skywalking.apache.org/downloads/ 网址下载相对应版本的skywalking

下载完毕将压缩包解压


webapp:UI前端(web监控页面)的jar包和配置文件;
oap-libs:后台应用的jar包,以及它的依赖jar包,里面的server-starter-*.jar就是启动程序;
config:启动后台应用程序的配置文件,是使用的各种配置;
bin:各种启动脚本,一般使用脚本startup.bat在Windows下启动web页面和对应的后台应用;
agent:

启动完成

访问http://localhost:8080/查看是否成功

这里的8080端口时默认端口可以在webapp/webapp.yml配置文件中修改



需要进行链路追踪的微服务都需要在jvm配置中加入以下内容


-javaagent:D:/skywalking/apache-skywalking-apm-8.5.0/apache-skywalking-apm-bin/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=springcloud-gateway
-Dskywalking.collector.backend_service=localhost:11800

因为skywalking默认没有gateway的依赖,从可选插件里复制我们所需要的gateway插件到plugins中即可。

完成后重启项目和skywalking
测试


可以以拓扑图的形式查看经过的节点

还可以具体查看模块性能
skywalking链路追踪的内容默认存储在内存中,关闭服务之后链路信息就会丢失,那么如何持久化到MySQL数据库呢?



他是没有带Mysql的jar包的,需要自己下载并放入


数据库名自定义,只需创建数据库,他重启后会自己创建所需的表

重启完毕查看数据库,生成大量表
