javascript
SpringBoot监控
一. SpringBoot-Actuator
1.1什么是Actuator
????????Actuator是spring boot的一個(gè)附加功能,可幫助你在應(yīng)用程序生產(chǎn)環(huán)境時(shí)監(jiān)視和管理應(yīng)用程序。 可以使用HTTP的各種請(qǐng)求來(lái)監(jiān)管,審計(jì),收集應(yīng)用的運(yùn)行情況。Spring Boot Actuator提供了對(duì)單個(gè)?Spring Boot的監(jiān)控,信息包含:應(yīng)用狀態(tài)、內(nèi)存、線程、堆棧等等,比較全面的監(jiān)控了Spring Boot應(yīng)用的整個(gè)生命周期。特別對(duì)于微服務(wù)管理十分有意義。
Actuator?的?REST?接口
Actuator?監(jiān)控分成兩類:原生端點(diǎn)和用戶自定義端點(diǎn);自定義端點(diǎn)主要是指擴(kuò)展性,用戶可以根據(jù)自己的實(shí)際應(yīng)用,定義一些比較關(guān)心的指標(biāo),在運(yùn)行期進(jìn)行監(jiān)控。
原生端點(diǎn)是在應(yīng)用程序里提供眾多?Web?接口,通過它們了解應(yīng)用程序運(yùn)行時(shí)的內(nèi)部狀況。
原生端點(diǎn)又可以分成三類:
應(yīng)用配置類:可以查看應(yīng)用在運(yùn)行期的靜態(tài)信息:例如自動(dòng)配置信息、加載的?springbean?信息、yml?文件配置信息、環(huán)境信息、請(qǐng)求映射信息;
度量指標(biāo)類:主要是運(yùn)行期的動(dòng)態(tài)信息,例如堆棧、請(qǐng)求鏈、一些健康指標(biāo)、metrics?信息 等;
操作控制類:主要是指?shutdown,用戶可以發(fā)送一個(gè)請(qǐng)求將應(yīng)用的監(jiān)控功能關(guān)閉。?Actuator?提供了?13?個(gè)接口,具體如下表所示。
?1.2.Actuator的使用
使用Actuator功能與springBoot使用其他功能一樣簡(jiǎn)單,只需要在pom.xml中添加如下依賴:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency>修改配置文件
server:port: 8888 info:app:name: spring-boot-actuatorversion: 1.0test: testmanagement:endpoints:web:exposure:include: '*' #可以打開所有的監(jiān)控點(diǎn)endpoint:health:show-details: always #展示細(xì)節(jié),除了always之外還有when-authorized、never,默認(rèn)值是nevershutdown:enabled: true #開啟優(yōu)雅關(guān)機(jī)修改配置文件后重啟服務(wù)后,訪問相關(guān)接口,就可以查看相關(guān)信心,也可以使用post請(qǐng)求訪問shutdown接口實(shí)現(xiàn)優(yōu)雅關(guān)節(jié),這里就不做過多演示了。有興趣的小伙伴可以去官網(wǎng)查看
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/? ? ? ??
?
二.Spring Boot Admin
2.1什么是Spring Boot Admin
對(duì)于spring actuator而言,最大的缺點(diǎn)在于是以json形式來(lái)進(jìn)行展示,為了更好的進(jìn)行監(jiān)控 顯示,我們來(lái)介紹一個(gè)更加方便的工具:spring boot admin。
Spring Boot Admin:可視化后臺(tái)管理系統(tǒng)
Spring Boot Admin?是一個(gè)針對(duì)spring-boot的actuator接口進(jìn)行UI美化封裝的監(jiān)控工具。他可以 返回在列表中瀏覽所有被監(jiān)控spring-boot項(xiàng)目的基本信息比如:Spring容器管理的所有的bean、 詳細(xì)的Health信息、內(nèi)存信息、JVM信息、垃圾回收信息、各種配置信息(比如數(shù)據(jù)源、緩存列表 和命中率)等,Threads?線程管理,Environment?管理等。
利用springbootadmin進(jìn)行監(jiān)控的架構(gòu)圖如下:
?springbootadmin監(jiān)控
通俗點(diǎn),就是我們?nèi)绻衝個(gè)springboot業(yè)務(wù)系統(tǒng)需要監(jiān)控的話,那么需要一個(gè)額外的
springbootadmin應(yīng)用來(lái)進(jìn)行監(jiān)控這些client,client和server之間需要做一點(diǎn)配置即可。
2.2SpringBootAdmin的使用
2.2.1搭建Server端
a.添加相關(guān)啟動(dòng)器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId></dependency>b.修改yml中的端口號(hào)
server:port: 8081c.在啟動(dòng)類中開啟服務(wù)端
@EnableAdminServer @SpringBootApplication public class SpringbootadminserverApplication {public static void main(String[] args) {SpringApplication.run(SpringbootadminserverApplication.class, args);}}d.啟動(dòng)服務(wù)端?
2.2.2搭建客戶端
a.添加相關(guān)啟動(dòng)器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>2.1.0</version> </dependency>b.編寫application.yml
server:port: 8080 #自定義配置信息用于"/actuator/info"讀取 info:name: 老王age: 100phone: 110 #通過下面的配置啟用所有的監(jiān)控端點(diǎn),默認(rèn)情況下,這些端點(diǎn)是禁用的; management:endpoints:web:exposure:include: "*"endpoint:health:show-details: always## 將Client作為服務(wù)注冊(cè)到Server,通過Server來(lái)監(jiān)聽項(xiàng)目的運(yùn)行情況 spring:boot:admin:client:url: http://localhost:8081##application實(shí)例名application:name: spring-boot-admin-clientc.編寫demo.java
@RestController public class demo {@RequestMapping("/index")public String index() {return "這是 index";}@RequestMapping("/home")public String home() {return "這是 home";} }d.啟動(dòng)Client
秒后刷新,可以看到?client?端已注冊(cè)到?server。
?查看?client?詳細(xì)信息:
?
總結(jié)
以上是生活随笔為你收集整理的SpringBoot监控的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ip iq 谐波检测matlab仿真,i
- 下一篇: springboot自动创建Oracle