Java Agent 服務器探針
參考官網給出的幫助 Setup java agent,我們需要使用官方提供的探針為我們達到監控的目的,按照實際情況我們需要實現三種部署方式
- IDEA 部署探針
- Java 啟動方式部署探針(我們是 Spring Boot 應用程序,需要使用
java -jar
的方式啟動應用) - Docker 啟動方式部署探針(需要做到一次構建到處運行的持續集成效果,本章節暫不提供解決方案,到后面的實戰環節再實現)
探針文件在 apache-skywalking-apm-incubating/agent
目錄下
#IDEA 部署探針
繼續之前的案例項目,創建一個名為 hello-spring-cloud-external-skywalking
的目錄,並將 agent
整個目錄拷貝進來
修改項目的 VM 運行參數,點擊菜單欄中的 Run
-> EditConfigurations...
,此處我們以 nacos-provider
項目為例,修改參數如下
-javaagent:D:\Workspace\Others\hello-spring-cloud-alibaba\hello-spring-cloud-external-skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=nacos-provider
-Dskywalking.collector.backend_service=localhost:11800
1
2
3
-javaagent
:用於指定探針路徑-Dskywalking.agent.service_name
:用於重寫agent/config/agent.config
配置文件中的服務名-Dskywalking.collector.backend_service
:用於重寫agent/config/agent.config
配置文件中的服務地址
#Java 啟動方式
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar
1
#測試監控
啟動 nacos-provider
項目,通過觀察日志可以發現,已經成功加載探針
訪問之前寫好的接口 http://localhost:8081/echo/hi 之后再刷新 SkyWalking Web UI,你會發現 Service 與 Endpoint 已經成功檢測到了
至此,表示 SkyWalking 鏈路追蹤配置成功
#SkyWalking Trace 監控
SkyWalking 通過業務調用監控進行依賴分析,提供給我們了服務之間的服務調用拓撲關系、以及針對每個 Endpoint 的 Trace 記錄。
#調用鏈路監控
點擊 Trace
菜單,進入追蹤頁
點擊 Trace ID
展開詳細信息
上圖展示了一次正常的響應,總響應時間為 185ms
共有一個 Span(基本工作單元,表示一次完整的請求,包含響應,即請求並響應)
Span /echo/{message}
說明如下:
- Duration:響應時間 185 毫秒
- component:組件類型為 SpringMVC
- url:請求地址
- http.method:請求類型
#服務性能指標監控
點擊 Service
菜單,進入服務性能指標監控頁
選擇希望監控的服務
- Avg SLA: 服務可用性(主要是通過請求成功與失敗次數來計算)
- CPM: 每分鍾調用次數
- Avg Response Time: 平均響應時間
點擊 More Server Details...
還可以查看詳細信息
上圖中展示了服務在一定時間范圍內的相關數據,包括:
- 服務可用性指標 SLA
- 每分鍾平均響應數
- 平均響應時間
- 服務進程 PID
- 服務所在物理機的 IP、Host、OS
- 運行時 CPU 使用率
- 運行時堆內存使用率
- 運行時非堆內存使用率
- GC 情況