當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
SpringBootAdmin监控信息讲解
生活随笔
收集整理的這篇文章主要介紹了
SpringBootAdmin监控信息讲解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們搭建了一個(gè)SpringBoot Admin監(jiān)控平臺(tái),用來(lái)監(jiān)控我們的SpringBoot項(xiàng)目,我們的平臺(tái)運(yùn)行以后,現(xiàn)在可以監(jiān)控到HelloWorld的項(xiàng)目了,其實(shí)這個(gè)就是我們?cè)谶\(yùn)行的SpringBoot-helloworld的項(xiàng)目,APPLICATION這個(gè)視圖下http://localhost:9090/#/我們來(lái)查看一下詳細(xì)信息http://localhost:9090/#/applications/cbadc2b1/details這個(gè)時(shí)候又跳到了另一個(gè)頁(yè)面,這個(gè)頁(yè)面里為我們提供了很多的信息,比如第一個(gè)是詳細(xì)信息,然后Metrics,還有Environment,還有l(wèi)ogging,還有JMX,我們一個(gè)一個(gè)來(lái)看一下,首先是一個(gè)details,這里主要是監(jiān)控應(yīng)用的詳細(xì)信息,你看這里也有Health,這個(gè)不就是曾經(jīng)在我們的項(xiàng)目當(dāng)中,通過(guò)URI,通過(guò)他看到的信息,只不過(guò)不同的是什么呢,他現(xiàn)在把JSON格式的字符串,在UI當(dāng)中以視圖的方式來(lái)顯示了,我們看起來(lái)會(huì)更方便一些,比如當(dāng)前的應(yīng)用是UP狀態(tài)的,然后磁盤的一個(gè)空間,有多少可用的,最少需要的臨界值,你的程序在運(yùn)行的時(shí)候,磁盤最少需要多少,還有內(nèi)存的信息,JVM的信息,現(xiàn)在用這種可視化界面,去查看我們的監(jiān)控信息,那么對(duì)于我們使用者來(lái)講,更加一目了然,比我們看JSON字符串的要方便一些,其實(shí)Details呢,主要顯示你當(dāng)前監(jiān)控應(yīng)用的基礎(chǔ)信息
Metrics是對(duì)我們當(dāng)前監(jiān)控的應(yīng)用,做了一個(gè)分明別類上的概念上的統(tǒng)計(jì),比如第一個(gè)是classes,當(dāng)前你的應(yīng)用運(yùn)行一共有多少個(gè)class運(yùn)行了,然后有多少個(gè)class類加載器在運(yùn)行,然后沒(méi)有加載的class有多少個(gè),對(duì)我們class的一個(gè)統(tǒng)計(jì)
Counter這一塊主要是對(duì)我們http請(qǐng)求,做了一個(gè)計(jì)數(shù)的統(tǒng)計(jì),比如請(qǐng)求狀態(tài)是200的,200的info有多少個(gè),200以下產(chǎn)生的logger有多少個(gè),我們看一下404的有3個(gè),在我們的項(xiàng)目當(dāng)中,是不是有一個(gè)hello的URI,我們?cè)賮?lái)訪問(wèn)一下hello,看spring boot admin看還能不能訪問(wèn)到,看我們的瀏覽器localhost:8080/hello這個(gè)響應(yīng)回來(lái)了,只不過(guò)我們這里什么都沒(méi)有,是不是多了一個(gè)counter.status.200.hello表示你當(dāng)前請(qǐng)求過(guò)一次hello,比如我現(xiàn)在再去請(qǐng)求一次,這個(gè)時(shí)候hello請(qǐng)求的次數(shù)是2了,所以這里主要是統(tǒng)計(jì)當(dāng)前你HTTP請(qǐng)求的一個(gè)數(shù)量
gauge這個(gè)主要是統(tǒng)計(jì)什么呢,主要統(tǒng)計(jì)響應(yīng)的一些信息,比如響應(yīng)hello,有多少其他信息的一個(gè)響應(yīng),還有堆的dump信息,針對(duì)響應(yīng)去做的統(tǒng)計(jì)分析,咱們?cè)偻罂?
gc對(duì)垃圾收集器做了一個(gè)統(tǒng)計(jì)的分析,像垃圾回收一共做了多少次,在JDK1.8里面用的是scavenge收集器,收集了8次,然后收集的時(shí)間是205毫秒,然后marksweep,這個(gè)是當(dāng)前scavenge垃圾收集器里面,用的是什么樣的算法,去做的回收,這里用的是一個(gè)標(biāo)記清除算法,標(biāo)記清除算法用了兩次,所耗的時(shí)間是138毫秒,所以這里是對(duì)垃圾回收器的一個(gè)統(tǒng)計(jì),然后heap是對(duì)堆的一個(gè)統(tǒng)計(jì),初始化是多大,然后用了多少,堆的總大小是多少,JVM占用的堆的總大小是多少,堆的總共容量是多少,然后還有httpsessions,你當(dāng)前被監(jiān)控的項(xiàng)目產(chǎn)生了多少個(gè)Session對(duì)象,那么我們現(xiàn)在沒(méi)有用到session,我們項(xiàng)目當(dāng)中并沒(méi)有去創(chuàng)建session,產(chǎn)生的session數(shù)量是沒(méi)有的,激活的session數(shù)量也是沒(méi)有的,instance.uptime這個(gè)是你當(dāng)前實(shí)例所運(yùn)行的時(shí)間,單位也是毫秒,我刷新毫秒數(shù)是有變化的,他不是實(shí)時(shí)的,你每次刷新這個(gè)時(shí)間都會(huì)有變化的
mem是什么呢,就是memory,監(jiān)控內(nèi)存的,我們JVM總共占了內(nèi)存多少空間,現(xiàn)在剩余多少空間,然后還有nonheap,這個(gè)是什么呢,非堆內(nèi)存的一個(gè)使用情況,其實(shí)JVM除了有堆,還有非堆,這里主要是統(tǒng)計(jì)非堆的一些統(tǒng)計(jì)信息,processors這個(gè)是你當(dāng)前物理CPU的核心數(shù)量,這里寫(xiě)的是4,表示我當(dāng)前運(yùn)行HelloWorld的這個(gè)項(xiàng)目,當(dāng)前硬件CPU的核心數(shù),是4個(gè),然后還有一個(gè)systemload,這是什么呢,記錄你當(dāng)前系統(tǒng)的一個(gè)負(fù)載量,其實(shí)我們被監(jiān)控的helloworld里面,負(fù)載量是很小很小的,主要顯示你當(dāng)前系統(tǒng)的負(fù)載量,然后還有一個(gè)threads,當(dāng)前系統(tǒng)的線程信息,比如threads.peak,你當(dāng)前系統(tǒng)當(dāng)中,最高峰值是多少,守護(hù)線程是20個(gè),啟動(dòng)的是28個(gè)線程,這是對(duì)線程信息的一個(gè)統(tǒng)計(jì)
uptime你當(dāng)前程序運(yùn)行狀態(tài)的一個(gè)時(shí)間,也是毫秒數(shù),能夠被正常運(yùn)行的一個(gè)狀態(tài),通過(guò)Metrics里面,對(duì)于helloworld的一個(gè)統(tǒng)計(jì),應(yīng)該還是很有用的,感興趣的還可以看看里面詳細(xì)的內(nèi)容
Environment主要是顯示你當(dāng)前系統(tǒng)的環(huán)境,其實(shí)Environment里面看到的信息,就是我們之前訪問(wèn)項(xiàng)目,通過(guò)/env,通過(guò)這個(gè)URI,訪問(wèn)所得到的信息,不過(guò)當(dāng)時(shí)是以JSON格式返回的,而在這里是以視圖,以視圖返回的,可以看到監(jiān)聽(tīng)的端口,還有java.runtime.name,還有JRE環(huán)境的路徑,版本,這都是一些JVM的信息
logging主要記錄當(dāng)前哪些類有日志記錄的級(jí)別,info的有哪些,哪些類里面用的是info級(jí)別的哪些是debug級(jí)別的,哪些是warn級(jí)別的,然后下面還有更多,顯示了你當(dāng)前用的類當(dāng)中,一個(gè)日志記錄級(jí)別的顯示
JMX是什么呢,大家應(yīng)該都知道,他是一個(gè)管理工具,他的全稱是什么呢,是JAVA管理擴(kuò)展,他也是一個(gè)標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)下的管理平臺(tái)呢,是可以跨越任何操作系統(tǒng)的,操作系統(tǒng)差異的一個(gè)影響,它是可以跨所有操作系統(tǒng)的,對(duì)于不同操作系統(tǒng)的下的JAVA程序,是可以做一個(gè)管理,這里也是當(dāng)前helloworld的一些監(jiān)控信息,然后還有一個(gè)Threads,其實(shí)我們這里看到的信息,是我們之前看到的dump里面的文件信息,請(qǐng)求duump里看到的信息,他都是以JSON格式串來(lái)看的,而在springboot admin里面,就是可視化視圖下,RUNNABLE正在運(yùn)行的線程,然后等待線程又多少個(gè),然后把所有的線程以一個(gè)列表的形式,展示出來(lái),并標(biāo)記每一個(gè)線程的一個(gè)狀態(tài),比如你可以點(diǎn)他,看一下這個(gè)線程,他正在RUNNABLE運(yùn)行
鎖了多少次,然后還有鎖的時(shí)間,還有等待數(shù)量,等待時(shí)間,所以我們可以通過(guò)查看線程的基本信息,也能知道線程的一個(gè)狀態(tài),對(duì)于dump文件里的一個(gè)展示,然后還有一個(gè)Audit,就是審計(jì),這里你可以根據(jù)你的時(shí)間,去做一些相應(yīng)的統(tǒng)計(jì)處理,還有一個(gè)Trace,Trace是什么呢,你的被監(jiān)控的系統(tǒng),所處理請(qǐng)求的一個(gè)顯示,在什么時(shí)間,請(qǐng)求了什么,基于什么請(qǐng)求的,狀態(tài)是什么,你看這里有一個(gè)圖形來(lái)顯示,然后如果有錯(cuò)誤的,就會(huì)有錯(cuò)誤的狀態(tài)碼,來(lái)顯示出他當(dāng)前一個(gè)響應(yīng)的狀態(tài),請(qǐng)求的一個(gè)狀態(tài),當(dāng)然你請(qǐng)求的量越多,這個(gè)圖當(dāng)中顯示的數(shù)據(jù)就越多,后面是你請(qǐng)求的URI
還有一個(gè)HeadDump,顯示我們的堆dump信息,它會(huì)啟動(dòng)一個(gè)下載,會(huì)把監(jiān)控的dump文件下載,下載之后我們把它解壓,對(duì)dump文件進(jìn)行詳細(xì)的分析,JDK當(dāng)中也有這樣的工具,在這里我們就不去說(shuō)了,APPLICATIONS一共有這么多的統(tǒng)計(jì)項(xiàng),或者叫管理項(xiàng),除了Applications,還有一個(gè)JOURNAL,JOURNAL主要是顯示日志的信息,我們可以看一看,顯示當(dāng)前狀態(tài)是正常運(yùn)行的狀態(tài)UNKNOWN -> UP我沒(méi)有其他的日志顯示,信息比較少
關(guān)于SpringBoot Admin信息平臺(tái)的顯示,其實(shí)Spring boot admin的平臺(tái)呢,他用起來(lái)還是挺方便的,希望大家多用他去監(jiān)控程序,比我們用JSON格式的形式去監(jiān)控,我們程序的健康狀態(tài),當(dāng)然這種監(jiān)控方式,我們?cè)谧鲰?xiàng)目的時(shí)候,沒(méi)有用這種監(jiān)控,如果你不是做微服務(wù)的開(kāi)發(fā),只是單應(yīng)用的話,或者服務(wù)應(yīng)用不多的時(shí)候,dubbo里面也有這種監(jiān)控平臺(tái),但是如果我們要做微服務(wù)開(kāi)發(fā),我們未來(lái)的服務(wù)項(xiàng)會(huì)非常的多,項(xiàng)目會(huì)非常的多,你要想了解每一個(gè)項(xiàng)目,或者每一個(gè)服務(wù)的狀態(tài),這個(gè)時(shí)候你需要有一個(gè)管理平臺(tái),這個(gè)時(shí)候我們才能夠通過(guò)管理平臺(tái)的一個(gè)狀態(tài),這也是我們?cè)谧鑫⒎?wù)開(kāi)發(fā)的時(shí)候,非常重要的一個(gè)環(huán)境,這是平臺(tái)顯示的根目錄,根頁(yè)面,這里我們可以去點(diǎn)擊Detailshttp://localhost:9090/#/看這些詳細(xì)信息,就是這樣的使用方式,那么到目前為止呢
?
總結(jié)
以上是生活随笔為你收集整理的SpringBootAdmin监控信息讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBootAdmin项目创建
- 下一篇: SpringBoot的配置文件-通过@C