简单实现SkyWalking
前言
SkyWalking 是提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化应用性能管理系统。为java,c#,Node.js等提供了自动探针代理,为Go,C++提供了手工探针,支持H2、es、mysql等等存储形式,具体我在这也不多描述,可查看官方文档查看特点以及原理
官方文档地址: https://skywalking.apache.org/.
简单使用
- 下载安装包
链接: http://skywalking.apache.org/downloads/.
选择自己需要的版本下载,在自己的文件夹下解压文件 - 启动
在bin目录下直接启动
因为个人是在windows系统做的测试,故使用 startup.bat 启动,liunx则使用startup.sh,会同时启动service和web两个程序,如下图
进入平台后页面显示,我使用localhost:8889端口进入
现在已经是简单将 SkyWalking 启动了
注:如和本地项目端口冲突
apache-skywalking-apm-bin-es7\webapp\webapp.yml 修改web端口
apache-skywalking-apm-bin-es7\config\application.yml 修改服务端端口
整合使用
刚才我先试着启动了skywalking,而我的测试项目是cloud项目(若依的cloud项目),以实际出发,使用skywalking的时候我们的项目就是微服务分布式项目了,因为单机项目也用不到skywalking进行链路跟踪了。
所以我采用每一个服务都配一个探针的方式来测试,具体操作如下:
3. 先在服务器上创建一个探针文件夹,文件名随意,且在任何地方都可以
4. 复制探针出来到自己建的文件夹下,自己有几个服务就复制几个探针出来,复制内容为下载的文件名中的agent文件夹,注意:agent文件目录不可更改,最好修改文件夹名称方便分辨是哪个服务的探针
5. 修改探针文件的conf文件,在自己复制出的探针的conf文件下的agent.conf文件,修改21行
- 修改项目启动jvm参数,指向属于自己的探针,注意,指向的是jar文件
-javaagent:E:\skywalking-agent\ruoyi-system\skywalking-agent.jar
-javaagent:E:\skywalking-agent\ruoyi-auth\skywalking-agent.jar
-javaagent:E:\skywalking-agent\ruoyi-gateway\skywalking-agent.jar
首先我是使用的 nacos 做注册中心 因为测试项目为若依的微服务项目 - 启动项目
首先,若依的微服务项目是配合nacos来启动的,nacos是阿里的一个注册中心+配置中心
现在可以看见三个服务全启动
启动若依cloud项目的ui项目,然后访问效果图:
现在已经很明显的看清楚请求的链路了
当然skywalking的功能远远不止这些,还有警告功能,还有日志功能等等,要实现这些功能的前提就是先搭建起skywalking,研究研究就可以了
在简单测试使用阶段踩过的坑:
- 未给探针指定名称 导致于所有链路服务节点都为同一个名称
- 若依的cloud项目的web页面是在cloud项目中,而不是分离版ui(实属本人粗心大意),
注意点:单机测试时, skywalking的服务端和web端的端口问题不要和本地项目冲突,修改端口在上方已经写明