SpringBoot之程序性能監(jiān)控

經(jīng)典名言--無監(jiān)控不調(diào)優(yōu)

  • 要想進(jìn)行SpringBoot項(xiàng)目調(diào)優(yōu),首選需要監(jiān)控項(xiàng)目運(yùn)行時(shí)情況。
    當(dāng)下SpringBoot項(xiàng)目逐漸替代早期的Spring項(xiàng)目,隨著用戶量的增加,Spring Boot框架也提供了actuator模塊。該模塊很方便的對你的Spring Boot程序做監(jiān)控。在SpringBoot中加入監(jiān)控的方法只需要把相應(yīng)的監(jiān)控依賴actuator引入即可。
  • pom文件中引入actuator依賴
    首先需要在pom.xml文件中引入以下依賴:
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • 為了保證actuator接口的敏感性,需要在配置文件中開放安全屬性配置
    配置參數(shù)如下:
management.security.enabled=false

配置后就可以允許你查看Spring Boot進(jìn)程的actuator信息了

  • 啟動日志查看

    • 啟動SpringBoot程序,控制臺日志里可以看到actuator接口信息



      通過上圖打印信息,我們可以實(shí)時(shí)的獲取應(yīng)用的各項(xiàng)監(jiān)控指標(biāo),用于后期的問題排查和調(diào)優(yōu)。

  • actuator的接口分為原生接口和用戶自定義接口
    原生接口主要有如下幾個:

路徑 說明
health 展示了進(jìn)程的健康狀態(tài)
beans 程序創(chuàng)建的Bean
configprops 配置信息,屬性值
env 環(huán)境屬性
info info開頭的程序?qū)傩孕畔?/td>
metrics 度量指標(biāo),比如JVM和HTTP請求等
trace HTTP的詳細(xì)請求信息
mappings 所有的URL路徑映射關(guān)系
dump 線程快照信息
heapdump 內(nèi)存快照信息

如果你想關(guān)閉某個接口,比如關(guān)閉health接口,可以通過設(shè)置來實(shí)現(xiàn):

endpoints.health.enabled=false
  • 監(jiān)控展示器-JConsole
    JConsole說明:是一個內(nèi)置Java性能分析器,如果你本機(jī)已經(jīng)配置了jdk的話,可直接命令行輸入jconsole,打開后的頁面如下圖所示:



    選擇你要監(jiān)控的進(jìn)程,點(diǎn)擊連接即可進(jìn)入該Java進(jìn)程的監(jiān)控首頁,如下圖所示(類似jdk自帶的jvisualvm):



    jvisualvm監(jiān)控圖對比
  • Spring Boot Admin是一款開源軟件
    Spring Boot Admin是一款監(jiān)控和管理Spring Boot應(yīng)用程序的開源軟件。Spring Boot Admin讀取actuator的接口數(shù)據(jù),并通過Spring Boot Admin UI將實(shí)時(shí)數(shù)據(jù)展示在前端。

  • 實(shí)現(xiàn)步驟
    首先創(chuàng)建一個Spring Boot Admin Server,首先需要創(chuàng)建一個基本的Spring Boot應(yīng)用程序,這個就不做贅述了,并加入以下依賴:

<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-server</artifactId>
  <version>1.5.7</version>
</dependency>

<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-server-ui</artifactId>
  <version>1.5.7</version>
</dependency>

隨后把server.port端口設(shè)置為8090,并注冊到你的eureka服務(wù)上

  • 啟動類中使用注解開啟服務(wù)
@SpringBootApplication
@EnableDiscoveryClient
@EnableAdminServer
@EnableTurbine
public class HtsApplication {

  public static void main(String[] args) {
    SpringApplication.run(HtsApplication.class, args);
  }
}

在瀏覽器輸入url:http://localhost:8090
就可以看到Spring Boot Admin Server的頁面信息

  • 在任意需要被監(jiān)控的Spring Boot應(yīng)用程序上添加依賴
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>1.5.7</version>
</dependency>
  • 最后啟動客戶端,其中Spring Boot Admin Server從Eureka上拿到注冊信息后完成認(rèn)證
    在瀏覽器中輸入url:http://localhost:8090 就可以看到應(yīng)用程序的監(jiān)控信息了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Q: 什么是spring boot?A: 多年來,隨著新功能的增加,spring變得越來越復(fù)雜。只需訪問頁面htt...
    Java高級架構(gòu)獅閱讀 3,873評論 0 8
  • 第 III 部分Spring Boot 系統(tǒng)監(jiān)控、測試與運(yùn)維 Spring Boot 應(yīng)用監(jiān)控:Actuator與...
    光劍書架上的書閱讀 10,438評論 2 17
  • 有一種人西裝革履,卻道德淪陷,用權(quán)利和地位滿足私欲;另一種人窮困潦倒,懦弱卑微,只能無助地抱怨著不公。也許也許……...
    揀愛閱讀 244評論 0 1
  • 在我的人生字典里,從沒有哪一年象今年一樣心事重重,郁郁寡歡。多年以后,再回首2018年,不論從哪個角度來看,對我應(yīng)...
    七味隨筆閱讀 841評論 2 3
  • Day 4--- 行書營《持續(xù)的幸?!?0170209 《持續(xù)的幸?!纷髡唏R丁·塞利格曼是“積極心理學(xué)之父”。塞利...
    橙長之路閱讀 283評論 1 4

友情鏈接更多精彩內(nèi)容