您好,登錄后才能下訂單哦!
在生產環境中,需要實時或定期監控服務的可用性。Spring Boot的actuator(健康監控)功能提供了很多監控所需的接口,可以對應用系統進行配置查看、相關功能統計等。
Actuator 提供Rest接口,展示監控信息。
接口分為三大類:
應用配置類:獲取應用程序中加載的應用配置、環境變量、自動化配置報告等與SpringBoot應用相關的配置類信息。
度量指標類:獲取應用程序運行過程中用于監控的度量指標,比如:內存信息、線程池信息、HTTP請求統計等。
操作控制類:提供了對應用的關閉等操作類功能。
<!-- 監控依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
# 端口
server:
port: 8016
spring:
application:
# 應用名稱
name: node16-boot-actuator
management:
endpoints:
web:
exposure:
# 打開所有的監控點
include: "*"
# 自定義監控路徑 monitor
# 默認值:http://localhost:8016/actuator/*
# 配置后:http://localhost:8016/monitor/*
base-path: /monitor
endpoint:
health:
show-details: always
shutdown:
# 通過指定接口關閉 SpringBoot
enabled: true
# 可以自定義端口
# server:
# port: 8089
# 描述項目基礎信息
info:
app:
name: node16-boot-actuator
port: 8016
version: 1.0.0
author: cicada
Yml文件中配置的項目基礎信息
路徑:http://localhost:8016/monitor/info
輸出:
{
"app": {
"name": "node16-boot-actuator",
"port": 8016,
"version": "1.0.0",
"author": "cicada"
}
}
health 主要用來檢查應用的運行狀態
路徑:http://localhost:8016/monitor/health
輸出:
{
"status": "UP",
"details": {
"diskSpace": {
"status": "UP",
"details": {
"total": 185496236032,
"free": 140944084992,
"threshold": 10485760
}
}
}
}
展示了 bean 的類型、單例多例、別名、類的全路徑、依賴Jar等內容。
路徑: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"]
}
}
}
}
查看配置在什么條件下有效,或者自動配置為什么無效。
路徑:http://localhost:8016/monitor/conditions
輸出:
{
"contexts": {
"node16-boot-actuator": {
"positiveMatches": {
"AuditAutoConfiguration#auditListener": [{
"condition": "OnBeanCondition",
"message": "@ConditionalOnMissingBean"
}],
}
}
自動生成Jvm的堆轉儲文件HeapDump,可以使用監控工具 VisualVM 打開此文件查看內存快照。
路徑:http://localhost:8016/monitor/heapdump
描述 URI 路徑和控制器的映射關系
路徑: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
}]
}
}
}
}
}
}
展示線程名、線程ID、是否等待鎖、線程的狀態、線程鎖等相關信息。
路徑: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
}
]
}
優雅關閉 Spring Boot 應用,默認只支持POST請求。
路徑:http://localhost:8016/monitor/shutdown
GitHub地址:知了一笑
https://github.com/cicadasmile/spring-boot-base
碼云地址:知了一笑
https://gitee.com/cicadasmile/spring-boot-base
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。