SpringBoot配置Actuator组件,实现系统监控

在生产环境中,需要实时或定期监控服务的可用性。Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。

一、Actuator简介

监控分类

  • Actuator 提供Rest接口,展示监控信息。
  • 接口分为三大类:
  • 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与SpringBoot应用相关的配置类信息。
  • 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如:内存信息、线程池信息、HTTP请求统计等。
  • 操作控制类:提供了对应用的关闭等操作类功能。

二、与SpringBoot2.0整合 

1、核心依赖Jar包

      org.springframework.boot     spring-boot-starter-actuator

2、Yml配置文件

 # 端口 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

三、监控接口详解 

1、Info接口

Yml文件中配置的项目基础信息

 路径:http://localhost:8016/monitor/info 输出: {     "app": {         "name": "node16-boot-actuator",         "port": 8016,         "version": "1.0.0",         "author": "cicada"     } }

2、Health接口

health 主要用来检查应用的运行状态

 路径:http://localhost:8016/monitor/health 输出: {     "status": "UP",     "details": {         "diskSpace": {             "status": "UP",             "details": {                 "total": 185496236032,                 "free": 140944084992,                 "threshold": 10485760             }         }     } }

3、Beans接口

展示了 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"]             }         }     } }

4、Conditions接口

查看配置在什么条件下有效,或者自动配置为什么无效。

 路径:http://localhost:8016/monitor/conditions 输出: {     "contexts": {         "node16-boot-actuator": {             "positiveMatches": {                 "AuditAutoConfiguration#auditListener": [{                     "condition": "OnBeanCondition",                     "message": "@ConditionalOnMissingBean"                 }],     } }

5、HeapDump接口

自动生成Jvm的堆转储文件HeapDump,可以使用监控工具 VisualVM 打开此文件查看内存快照。

 路径:http://localhost:8016/monitor/heapdump

6、Mappings接口

描述 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                                 }]                             }                         }                     }             }     } }

7、ThreadDump接口

展示线程名、线程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     }     ] }

8、ShutDown接口

优雅关闭 Spring Boot 应用,默认只支持POST请求。

 路径:http://localhost:8016/monitor/shutdown

四、源代码地址 

GitHub地址:知了一笑
https://github.com/cicadasmile/spring-boot-base
码云地址:知了一笑
https://gitee.com/cicadasmile/spring-boot-base

以上就是SpringBoot配置Actuator组件,实现系统监控的详细内容,更多关于SpringBoot配置Actuator的资料请关注html中文网其它相关文章!

以上就是SpringBoot配置Actuator组件,实现系统监控的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java