使用SkyWalking監(jiān)控Java服務的過程
你的Java服務是如何監(jiān)控的呢?
- 1.Null:監(jiān)控?什么監(jiān)控?我一個寫代碼的服務掛了跟我有什么關系?
- 2.命令行:服務掛了?內(nèi)存泄漏?jstat jmap jcmd,還好不是我寫的
- 3.擼代碼:Java采集JVM/服務器資源信息 -> Prometheus -> Grafana,請允許我對業(yè)務代碼稍作修改。

今天,給大家介紹一個對源碼0入侵的Java服務監(jiān)控方式,SkyWalking Agent,只需要啟動Java程序的時候加幾個參數(shù),就能對Java服務進行可視化監(jiān)控啦
首次接觸SkyWalking是學習SpringCloud的時候,使用SkyWalking進行鏈路追蹤。使用SkyWalking進行鏈路追蹤時得到的拓撲圖大概是這個樣子(Demo項目),不過鏈路追蹤不是本文介紹的重點,本文主要講解如何使用SkyWalking進行Java服務的監(jiān)控。

1.下載并配置SkyWalking的后端服務
SkyWalking是需要后端服務的,即啟動Java項目的時使用的Agent只負責像SkyWalking后端服務發(fā)送指標信息,本身只是個客戶端Jar包
(1)下載
直接到SkyWalking的官網(wǎng)下載APM即可,官網(wǎng)地址:https://skywalking.apache.org/
下載完成后解壓,得到這個文件夾:

(2)修改配置文件
SkyWalking的后端服務配置文件在 apache-skywalking-apm-bin/webapp 目錄下,主要修改一下服務端口號,默認是8080,如果與你的項目端口不沖突的話,可以忽略這一步

(3)啟動SkyWalking后端服務
Windows的話,直接運行apache-skywalking-apm-bin/bin目錄下的startup.bat 就好了,其他系統(tǒng)可以運行sh那個。Windows打開后會出現(xiàn)兩個黑色的框框,不用管他,最小化就好,這時我們需要的SkyWalking后端服務實際已經(jīng)啟動了。
(4)驗證
使用瀏覽器打開 localhost:18080,如果訪問正常,說明服務已正常啟動。
2.啟動Java項目和SkyWalking Agent
SkyWalking使用了比較簡單的jar包agent方式進行客戶端啟動,Java服務啟動命令添加以下參數(shù)
-javaagent:F:\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=demo -Dskywalking.collector.backend_service=localhost:11800
參數(shù)說明:
- -javaagent后添加skywalking-agent.jar的本地路徑,哦,對了,這個agent jar包也是從SkyWalking的官網(wǎng)下載就可以
- skywalking.agent.service_name,該Java服務在SkyWalking后端服務中的顯示名稱=
- skywalking.collector.backend_service,SkyWalking的后端服務地址,如果你像我一樣修改了配置文件的話,這里就應該是 localhost:11800
3.查看服務相關監(jiān)控
使用瀏覽器訪問 localhost:18080

點擊Service Name,打開服務監(jiān)控面板,其中Overview中記錄了服務的一些基本監(jiān)控指標,例如:Service Apdex,請求成功率,平均響應時間等

除了服務響應信息,SkyWalking還可以用來監(jiān)控JVM。 選擇Instance,并點擊節(jié)點鏈接打開詳情

打開后的Overview是單個節(jié)點的服務響應信息

選擇JVM后,就是常見的JVM指標啦

可以通過以上儀表盤監(jiān)控JVM堆內(nèi)存和堆外內(nèi)存大小,gc時間和gc次數(shù),以及線程相關信息和JVM加在的Class數(shù)量,基本的錯誤排查大體夠用。不過并沒有JVM老年代和年輕代的具體使用情況,內(nèi)存監(jiān)控只區(qū)分了堆外內(nèi)存和堆內(nèi)存。如果是為了詳細的監(jiān)控JVM的話,這些指標感覺差點兒意思,后面將再介紹一個擁有更多JVM詳細監(jiān)控指標的開源項目,及搭建時遇到的問題,歡迎大家一下交流
到此這篇關于使用SkyWalking監(jiān)控Java服務的文章就介紹到這了,更多相關SkyWalking監(jiān)控Java服務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot?使用?spring.profiles.active?來區(qū)分不同環(huán)境配置實現(xiàn)
很多時候,我們項目在開發(fā)環(huán)境和生產(chǎn)環(huán)境的配置是不一樣的,例如,數(shù)據(jù)庫配置,在開發(fā)的時候,我們一般用測試數(shù)據(jù)庫,而在生產(chǎn)環(huán)境,我們要用生產(chǎn)數(shù)據(jù)庫,這時候,我們可以利用?profile?在不同的環(huán)境下配置用不同的配置文件或者不同的配置,感興趣的可以了解一下2026-04-04
PowerJob的OhMyClassLoader工作流程源碼解讀
這篇文章主要介紹了PowerJob的OhMyClassLoader工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
spring事務Propagation及其實現(xiàn)原理詳解
這篇文章主要介紹了spring事務Propagation及其實現(xiàn)原理詳解,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02
Java語言實現(xiàn)簡單FTP軟件 FTP協(xié)議分析(1)
這篇文章主要介紹了Java語言實現(xiàn)簡單FTP軟件的第一篇,針對FTP協(xié)議進行分析,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03

