官网:archive.apache.org/dist/skywal…
skywalking服务端部署
一、下载解压
二、修改配置端口
默认是8080,可以改一下避免冲突
修改webapp/application配置文件的port,我这里改成 9001(注意防火墙入站规则记得改)
三、启动
启动后skywalking-oap-server会暴露11800和12800两个端口,分别为收集监控数据的端口11800和接收前端请求的端口12800
四、访问
浏览器访问 http://localhost:9001/
下面绑定客户端
skywalking跨多个微服务跟踪,只需每个微服务启动时添加javaagent参数即可。
启动微服务,配置skywalking的jvm参数:
-javaagent:D:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-DSW_AGENT_NAME=nacos-stock
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
注:javaagent:的值为skywalking中agent下skywalking-agent.jar的目录,最好不要中文,防止出问题。
DSW_AGENT_NAME:项目名
DSW_AGENT_COLLECTOR_BACKEND_SERVICES:绑定端口
一、修改配置
我这里有两个服务,所以改两个,如果有多个,就改多个,改完启动项目即可。
再次访问 http://localhost:9001/ ,可以看到skywalking已经有对应实例了。
项目部署,可以添加对应参数达到效果。
skywalking持久化
默认h2内存中,重启后数据会丢失、内存爆满等问题。
一、修改配置
修改 ~\apache-skywalking-apm-bin-es7\config\application.yml配置文件
因为上面数据库名没改,所以得创建一个数据库名为swtest的数据库,不需要创建表,启动skywalking后会自动建表。
二、重新启动skywalking
这时候有一个窗口自动关闭了,通过日志发现是缺少mysql驱动,只需要把mysql驱动放到oap-libs目录下即可,注意版本和驱动的关系,有的cj.jdbc,有的没有,对应的版本不一样。
重新启动后,数据库表也自动建成
自定义链路
skywalking 不会自动追踪业务层方法,可以自定义。
一、添加依赖
<!-- skywalking 工具类,跟版本一致 -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.5.0</version>
</dependency>
二、方法添加注解
@Trace
@Tag(key="",value="returnedObj") // 指定返回值,key一般写方法名,value必须写死
@Tags({@Tag(key="",value="returnedObj"),@Tag(key="",value="returnedObj")}) // 指定参数