1、Skywalking是什么
適用於分布式系統性能監控工具
官方文檔地址:
https://github.com/apache/skywalking/tree/v6.6.0/docs
中文文檔
http://itmuch.com/books/skywalking/
2、Skywalking提供的功能
服務,服務實例,端點指標分析
根本原因分析
服務拓撲圖分析
服務,服務實例和端點依賴分析
檢測到慢速服務和端點
性能優化
分布式跟蹤和上下文傳播
數據庫訪問指標
告警
3、單機版本Skywalking使用
1) 下載
下載: http://skywalking.apache.org/downloads/
我這里下載的是6.6.0
https://archive.apache.org/dist/skywalking/6.6.0/
2) 環境要求
(1) JDK版本在JDK8-JDK12之間
ElasticSearch7版本,需要JDK11+
(2) 確保如下端口可用
11800:和Skywalking通信的gRPC端口
12800: 和Skywalking通信的HTTP端口
8080: UI所占用的端口
查看端口是否被占用
Linux/macOS
netstat -an | grep 8080
windows
netstat -ano|findstr 8080
3) 安裝&啟動
Linux
cd apache-skywalking-apm-bin/bin
sh startup.sh
Window
cd apache-skywalking-apm-bin/bin
startup.bat
訪問首頁 localhost:8080
4) 如何使用
目前最流行的使用方式是基於Java agent
Java agent支持的框架、中間件等,https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/Supported-list.md可在查看。
(1) 找到SkyWalking包中的agent目錄,agent目錄結構如下
將agent目錄拷貝到任意位置
(2) 配置config/agent.config
將agent.service_name 修改成微服務的名稱
(3) 如果想在IDE中啟動測試,配置如下
(4) 查看
15 cpm : 一定程度反映當前程序的吞吐量或者並發數
最慢的幾個端點
API響應時間的統計值
數據庫情況
拓撲圖可以查看服務調用去向
追蹤
可以查看在各個服務所占用的時間
5) Jar的方式啟動
java -javaagent:C:\Users\Think\Desktop\Skywalking\agent\skywalking-agent.jar -jar xxx.jar
對應Tomcat (linux)
修改 tomcat/bin/catalina.sh的第一行
補充:
配置采樣並打印SQL詳情
-javaagent:C:\Users\xxx\Desktop\Skywalking\agent\skywalking-agent.jar -Dskywalking.agent.sample_n_per_3_secs=1 -Dskywalking.plugin.mysql.trace_sql_parameters=true -Dskywalking.plugin.mysql.sql_parameters_max_length=200 -Dskywalking.agent.service_name=order
采樣率設置: -Dskywalking.agent.sample_n_per_3_secs=1 每隔3秒收集1條記錄
打印SQL設置: -Dskywalking.plugin.mysql.trace_sql_parameters=true -Dskywalking.plugin.mysql.sql_parameters_max_length=200