近期需要对程序的接口进行并发测试,使用 jmeter 测过后觉得不太满意。主要是上传和数据库查询处理的操作,想知道上传和数据库处理的耗时分别是多少。看了下若依的文档,发现是支持 skywalking 的,那就好办了。
安装#
使用 skywalking 需要先安装依赖,主要是 2 个文件,一个是 server 端一个是 agent。
安装方式也有 2 种,一种是直接下载安装,比较适合开发环境,一种是用 docker-compose 用配置文件一键部署。
直接安装#
在官方网站下载文件
APM 尽量下载老版本,最新版在 Windows 启动可能有些问题
Agent 选择对应的语言,这里是 Java,可以选择最新版,记住下载的版本,在添加 maven 依赖时需要对应上。
下载完成后解压即可。
解压 APM 后,进入 bin
文件夹下启动即可
默认 web-ui 使用的是 8080 端口,如果你的端口已被占用可以修改 webapp\webapp.yml
此文件
有其它问题请查看 logs
文件夹下的日志
Docker 启动#
这种方式更适合部署在生产环境,因为增加了 elasticsearch
中间件对日志进行了处理
version: '3'
services:
elasticsearch:
image: elasticsearch:7.17.6
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
# 设置集群名称
cluster.name: elasticsearch
# 以单一节点模式启动
discovery.type: single-node
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
volumes:
- /docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
- /docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
- /docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
network_mode: "host"
sky-oap:
image: apache/skywalking-oap-server:8.9.1
container_name: sky-oap
ports:
- "11800:11800"
- "12800:12800"
environment:
JAVA_OPTS: -Xms512m -Xmx1g
#记录数据的有效期,单位天
SW_CORE_RECORD_DATA_TTL: 7
#分析指标数据的有效期,单位天
SW_CORE_METRICS_DATA_TTL: 7
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: 127.0.0.1:9200
TZ: Asia/Shanghai
network_mode: "host"
sky-ui:
image: apache/skywalking-ui:8.9.1
container_name: sky-ui
ports:
- "18080:18080"
environment:
SW_OAP_ADDRESS: http://127.0.0.1:12800
TZ: Asia/Shanghai
JAVA_OPTS: "-Dserver.port=18080"
depends_on:
- sky-oap
network_mode: "host"
注意开启其中的对应端口
直接启动可能会报 elasticsearch
启动失败的问题
Error opening log file 'logs/gc.log': Permission denied
这是由于 elasticsearch 没有权限往对应的路径写入日志文件
解决方法也很简单,赋予对应的文件夹权限即可
sudo chmod 777 -R /docker/elk/elasticsearch
修改完成后重新启动,打开 http://ip:9200
查看 es 输出的信息
使用#
安装完成后在 RuoYi-Vue-Plus 中使用 skywalking 也很简单,只需要将注释的相关代码放开即可
ruoyi-admin/pom.xml
取消注释 maven,并设置对应下载的 Agent 版本
ruoyi-admin/src/main/resources/logback.xml
修改打印日志
启动#
接下来在程序启动时注入 Agent
选择增加运行时参数
-javaagent:D:\sky\skywalking-agent.jar
-Dskywalking.agent.service_name=ruoyi-auth
-Dskywalking.collector.backend_service=127.0.0.1:11800
对应的意思是
javaagent
探针对应的盘符位置
service_name
服务名
backend_service
skywalking 的地址
javaagent
指的是下载的 Agent 解压后的里面的 jar 包
配置成功后会在控制台输出一些日志
访问#
接下来你可以使用 http://IP:18080
访问 skywalking 的 webUI 了
可以在右上方设置语言和自动刷新
Skywalking 链路监控
SpringBoot 整合 SkyWalking 8.X (包含 Logback 日志采集)
add 增加 skywalking 集成 默认注释不开启
Skywalking Download
SkyWalking 极简入门