使用SkyWalking監(jiān)控Java服務(wù)的過程
你的Java服務(wù)是如何監(jiān)控的呢?
- 1.Null:監(jiān)控?什么監(jiān)控?我一個寫代碼的服務(wù)掛了跟我有什么關(guān)系?
- 2.命令行:服務(wù)掛了?內(nèi)存泄漏?jstat jmap jcmd,還好不是我寫的
- 3.擼代碼:Java采集JVM/服務(wù)器資源信息 -> Prometheus -> Grafana,請允許我對業(yè)務(wù)代碼稍作修改。
今天,給大家介紹一個對源碼0入侵的Java服務(wù)監(jiān)控方式,SkyWalking Agent,只需要啟動Java程序的時候加幾個參數(shù),就能對Java服務(wù)進(jìn)行可視化監(jiān)控啦
首次接觸SkyWalking是學(xué)習(xí)SpringCloud的時候,使用SkyWalking進(jìn)行鏈路追蹤。使用SkyWalking進(jìn)行鏈路追蹤時得到的拓?fù)鋱D大概是這個樣子(Demo項(xiàng)目),不過鏈路追蹤不是本文介紹的重點(diǎn),本文主要講解如何使用SkyWalking進(jìn)行Java服務(wù)的監(jiān)控。
1.下載并配置SkyWalking的后端服務(wù)
SkyWalking是需要后端服務(wù)的,即啟動Java項(xiàng)目的時使用的Agent只負(fù)責(zé)像SkyWalking后端服務(wù)發(fā)送指標(biāo)信息,本身只是個客戶端Jar包
(1)下載
直接到SkyWalking的官網(wǎng)下載APM即可,官網(wǎng)地址:https://skywalking.apache.org/
下載完成后解壓,得到這個文件夾:
(2)修改配置文件
SkyWalking的后端服務(wù)配置文件在 apache-skywalking-apm-bin/webapp 目錄下,主要修改一下服務(wù)端口號,默認(rèn)是8080,如果與你的項(xiàng)目端口不沖突的話,可以忽略這一步
(3)啟動SkyWalking后端服務(wù)
Windows的話,直接運(yùn)行apache-skywalking-apm-bin/bin目錄下的startup.bat 就好了,其他系統(tǒng)可以運(yùn)行sh那個。Windows打開后會出現(xiàn)兩個黑色的框框,不用管他,最小化就好,這時我們需要的SkyWalking后端服務(wù)實(shí)際已經(jīng)啟動了。
(4)驗(yàn)證
使用瀏覽器打開 localhost:18080,如果訪問正常,說明服務(wù)已正常啟動。
2.啟動Java項(xiàng)目和SkyWalking Agent
SkyWalking使用了比較簡單的jar包agent方式進(jìn)行客戶端啟動,Java服務(wù)啟動命令添加以下參數(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服務(wù)在SkyWalking后端服務(wù)中的顯示名稱=
- skywalking.collector.backend_service,SkyWalking的后端服務(wù)地址,如果你像我一樣修改了配置文件的話,這里就應(yīng)該是 localhost:11800
3.查看服務(wù)相關(guān)監(jiān)控
使用瀏覽器訪問 localhost:18080
點(diǎn)擊Service Name,打開服務(wù)監(jiān)控面板,其中Overview中記錄了服務(wù)的一些基本監(jiān)控指標(biāo),例如:Service Apdex,請求成功率,平均響應(yīng)時間等
除了服務(wù)響應(yīng)信息,SkyWalking還可以用來監(jiān)控JVM。 選擇Instance,并點(diǎn)擊節(jié)點(diǎn)鏈接打開詳情
打開后的Overview是單個節(jié)點(diǎn)的服務(wù)響應(yīng)信息
選擇JVM后,就是常見的JVM指標(biāo)啦
可以通過以上儀表盤監(jiān)控JVM堆內(nèi)存和堆外內(nèi)存大小,gc時間和gc次數(shù),以及線程相關(guān)信息和JVM加在的Class數(shù)量,基本的錯誤排查大體夠用。不過并沒有JVM老年代和年輕代的具體使用情況,內(nèi)存監(jiān)控只區(qū)分了堆外內(nèi)存和堆內(nèi)存。如果是為了詳細(xì)的監(jiān)控JVM的話,這些指標(biāo)感覺差點(diǎn)兒意思,后面將再介紹一個擁有更多JVM詳細(xì)監(jiān)控指標(biāo)的開源項(xiàng)目,及搭建時遇到的問題,歡迎大家一下交流
到此這篇關(guān)于使用SkyWalking監(jiān)控Java服務(wù)的文章就介紹到這了,更多相關(guān)SkyWalking監(jiān)控Java服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于visualvm監(jiān)控類實(shí)現(xiàn)過程詳解
這篇文章主要介紹了基于visualvm監(jiān)控類實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09Mybatis 實(shí)現(xiàn)動態(tài)組裝查詢條件,仿SQL模式
這篇文章主要介紹了Mybatis 實(shí)現(xiàn)動態(tài)組裝查詢條件,仿SQL模式的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06spring cloud gateway整合sentinel實(shí)現(xiàn)網(wǎng)關(guān)限流
這篇文章主要介紹了spring cloud gateway整合sentinel實(shí)現(xiàn)網(wǎng)關(guān)限流,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01JDK動態(tài)代理的深入理解與實(shí)際應(yīng)用
這篇文章主要介紹了JDK動態(tài)代理的深入理解與實(shí)際應(yīng)用,在Java的世界里,JDK的動態(tài)代理是一項(xiàng)非常強(qiáng)大且實(shí)用的技術(shù),它為我們在運(yùn)行時動態(tài)地創(chuàng)建代理類提供了可能,從而實(shí)現(xiàn)對目標(biāo)對象方法調(diào)用的靈活攔截和增強(qiáng),需要的朋友可以參考下2025-02-02