携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情
一、SkyWalking接入微服务
SkyWalking服务安装好启动之后,里面是没有任何服务数据的,这就需要我们将服务对接到SkyWalking中,服务对接SkyWalking有两种方案,一种是开发环境,另外一种是运行环境。
1-1、开发环境使用idea对接SkyWalking
以GateWay服务来进行演示如何对接SkyWalking。
首先进入配置编辑中,如下
配置VM Option
配置SkyWalking相关配置信息
三个配置信息作用如下:
#指向服务所在磁盘的akywalking-agent.jar
-javaagent:E:\serverSoft\apache-skywalking-apm-bin\agent\skywalking-agent.jar
#设置当前服务在SkyWalking中的服务名称
-DSW_AGENT_NAME=GateWay-service
#设置SkyWalking的服务地址
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.253.131:11800
1-1-2、访问服务查看SkyWalking控制台
配置好服务之后,将GateWay服务号和order服务都启动起来,通过访问GateWay服务调用order服务。
首先访问http://127.0.0.1:8088/order/get 查询订单服务
然后打开SkyWalking控制台,可以看到服务已经被SkyWalking监听到,但是请求的接口并没有被监听到。 这是因为SkyWalking默认不监听GateWay,因此需要我们自行处理一下
1-1—2-1、SkyWalking对GateWay的支持
拷贝agent/optional-plugins目录下的gateway插件到agent/plugins目录
我这边本地环境有SkyWalking未启动,启动类虚拟机的SkyWalking,idea中的GateWay服务连接的服务是虚拟机SkyWalking。加载的skywalking-agent.jar为本地,因此这边拷贝的文件为本地的SkyWalking文件,如下:
将如下地址的文件agent/optional-plugins
拷贝到agent/plugins
拷贝之后,重启SkyWalking服务
再次访问GateWay服务,并且打开SkyWalking控制台,数据就正常显示了如下:
SkyWalking支持的服务都在agent/plugins中,如下:
1-2、linux环境—通过jar包方式接入
1-2-1、通过脚本来处理
上面介绍了使用本地开发环境idea计入SkyWalking,那档项目证书发布的时候该如何接入呢?下面来看一下
准备一个springboot程序,打成可执行jar包,写一个shell脚本,在启动项目的Shell脚本上,通过 -javaagent 参数进行配置SkyWalking Agent来跟踪微服务;
startup.sh脚本:
#!/bin/sh
# SkyWalking Agent配置
export SW_AGENT_NAME=springboot-skywalking-demo #Agent名字,一般使用`spring.application.name`
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 #配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000 #配置链路的最大Span数量,默认为 300。
export JAVA_AGENT=-javaagent:/usr/local/soft/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
java $JAVA_AGENT -jar myservice.jar #jar启动服务
启动日志
1-2-2、通过java -jar
可以通过java -jar 启动服务的同时,指定服务所在的skywalking-agent.jar和SkyWalking的服务地址。
java -javaagent:/usr/local/soft/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
-DSW_AGENT_NAME=MY_SERVICE -jar myservice.jar
通过以上配置步骤就可以完成微服务接入SkyWalking了。