SpringBoot配置Actuator組件,實現(xiàn)系統(tǒng)監(jiān)控
一、Actuator簡介
監(jiān)控分類
- Actuator 提供Rest接口,展示監(jiān)控信息。
- 接口分為三大類:
- 應(yīng)用配置類:獲取應(yīng)用程序中加載的應(yīng)用配置、環(huán)境變量、自動化配置報告等與SpringBoot應(yīng)用相關(guān)的配置類信息。
- 度量指標(biāo)類:獲取應(yīng)用程序運行過程中用于監(jiān)控的度量指標(biāo),比如:內(nèi)存信息、線程池信息、HTTP請求統(tǒng)計等。
- 操作控制類:提供了對應(yīng)用的關(guān)閉等操作類功能。
二、與SpringBoot2.0整合
1、核心依賴Jar包
<!-- 監(jiān)控依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2、Yml配置文件
# 端口 server: port: 8016 spring: application: # 應(yīng)用名稱 name: node16-boot-actuator management: endpoints: web: exposure: # 打開所有的監(jiān)控點 include: "*" # 自定義監(jiān)控路徑 monitor # 默認(rèn)值:http://localhost:8016/actuator/* # 配置后:http://localhost:8016/monitor/* base-path: /monitor endpoint: health: show-details: always shutdown: # 通過指定接口關(guān)閉 SpringBoot enabled: true # 可以自定義端口 # server: # port: 8089 # 描述項目基礎(chǔ)信息 info: app: name: node16-boot-actuator port: 8016 version: 1.0.0 author: cicada
三、監(jiān)控接口詳解
1、Info接口
Yml文件中配置的項目基礎(chǔ)信息
路徑:http://localhost:8016/monitor/info
輸出:
{
"app": {
"name": "node16-boot-actuator",
"port": 8016,
"version": "1.0.0",
"author": "cicada"
}
}
2、Health接口
health 主要用來檢查應(yīng)用的運行狀態(tài)
路徑:http://localhost:8016/monitor/health
輸出:
{
"status": "UP",
"details": {
"diskSpace": {
"status": "UP",
"details": {
"total": 185496236032,
"free": 140944084992,
"threshold": 10485760
}
}
}
}
3、Beans接口
展示了 bean 的類型、單例多例、別名、類的全路徑、依賴Jar等內(nèi)容。
路徑:http://localhost:8016/monitor/beans
輸出:
{
"contexts": {
"node16-boot-actuator": {
"beans": {
"endpointCachingOperationInvokerAdvisor": {
"aliases": [],
"scope": "singleton",
"type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor",
"resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]",
"dependencies": ["environment"]
}
}
}
}
4、Conditions接口
查看配置在什么條件下有效,或者自動配置為什么無效。
路徑:http://localhost:8016/monitor/conditions
輸出:
{
"contexts": {
"node16-boot-actuator": {
"positiveMatches": {
"AuditAutoConfiguration#auditListener": [{
"condition": "OnBeanCondition",
"message": "@ConditionalOnMissingBean"
}],
}
}
5、HeapDump接口
自動生成Jvm的堆轉(zhuǎn)儲文件HeapDump,可以使用監(jiān)控工具 VisualVM 打開此文件查看內(nèi)存快照。
路徑:http://localhost:8016/monitor/heapdump
6、Mappings接口
描述 URI 路徑和控制器的映射關(guān)系
路徑:http://localhost:8016/monitor/mappings
輸出:
{
"contexts": {
"node16-boot-actuator": {
"mappings": {
"dispatcherServlets": {
"dispatcherServlet": [ {
"handler": "Actuator web endpoint 'auditevents'",
"predicate": "{GET /monitor/auditevents || application/json]}",
"details": {
"handlerMethod": {
"className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.Operat
"name": "handle",
"descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
},
"requestMappingConditions": {
"consumes": [],
"headers": [],
"methods": ["GET"],
"params": [],
"patterns": ["/monitor/auditevents"],
"produces": [{
"mediaType": "application/vnd.spring-boot.actuator.v2+json",
"negated": false
}, {
"mediaType": "application/json",
"negated": false
}]
}
}
}
}
}
}
7、ThreadDump接口
展示線程名、線程ID、是否等待鎖、線程的狀態(tài)、線程鎖等相關(guān)信息。
路徑:http://localhost:8016/monitor/threaddump
輸出:
{
"threads": [{
"threadName": "DestroyJavaVM",
"threadId": 34,
"blockedTime": -1,
"blockedCount": 0,
"waitedTime": -1,
"waitedCount": 0,
"lockName": null,
"lockOwnerId": -1,
"lockOwnerName": null,
"inNative": false,
"suspended": false,
"threadState": "RUNNABLE",
"stackTrace": [],
"lockedMonitors": [],
"lockedSynchronizers": [],
"lockInfo": null
}
]
}
8、ShutDown接口
優(yōu)雅關(guān)閉 Spring Boot 應(yīng)用,默認(rèn)只支持POST請求。
路徑:http://localhost:8016/monitor/shutdown
四、源代碼地址
GitHub地址:知了一笑
https://github.com/cicadasmile/spring-boot-base
碼云地址:知了一笑
https://gitee.com/cicadasmile/spring-boot-base
以上就是SpringBoot配置Actuator組件,實現(xiàn)系統(tǒng)監(jiān)控的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot配置Actuator的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MyBatis映射文件resultMap元素中使用多個association的方法
這篇文章主要介紹了MyBatis映射文件resultMap元素中使用多個association的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Java適配器模式_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java適配器模式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
Java中BigDecimal除法使用不當(dāng)導(dǎo)致精度問題
本文主要介紹了Java中BigDecimal除法使用不當(dāng)導(dǎo)致精度問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Java初學(xué)者之五子棋游戲?qū)崿F(xiàn)教程
這篇文章主要為大家詳細(xì)介紹了Java初學(xué)者之五子棋游戲?qū)崿F(xiàn)教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
MybatisPlus 插入或更新數(shù)據(jù)時自動填充更新數(shù)據(jù)解決方案
本文主要介紹了MybatisPlus 插入或更新數(shù)據(jù)時自動填充更新數(shù)據(jù)解決方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

