近期需要對程序的接口進行並發測試,使用 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 極簡入門