SpringBoot配置Actuator組件,實(shí)現(xiàn)系統(tǒng)監(jiān)控
監(jiān)控分類
Actuator 提供Rest接口,展示監(jiān)控信息。 接口分為三大類: 應(yīng)用配置類:獲取應(yīng)用程序中加載的應(yīng)用配置、環(huán)境變量、自動化配置報告等與SpringBoot應(yīng)用相關(guān)的配置類信息。 度量指標(biāo)類:獲取應(yīng)用程序運(yùn)行過程中用于監(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: 8016spring: application: # 應(yīng)用名稱 name: node16-boot-actuatormanagement: endpoints: web: exposure:# 打開所有的監(jiān)控點(diǎ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)用的運(yùn)行狀態(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/heapdump6、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組件,實(shí)現(xiàn)系統(tǒng)監(jiān)控的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot配置Actuator的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
