0


springboot系列教程(十六):配置Actuator组件,实现系统监控

一、Actuator简介

1、监控组件作用

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

2、监控分类

Actuator 提供Rest接口,展示监控信息,接口分为三大类:

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

二、SpringBoot2整合

1、核心依赖Jar包

<!-- 监控依赖 --><dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-actuator</artifactid></dependency>

2、Yml配置文件

# 端口server:port:8016spring: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:# 通过指定接口关闭 SpringBootenabled:true# 可以自定义端口# server:#   port: 8089# 描述项目基础信息info:app:name: node16-boot-actuator
    port:8016version: 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

标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/weixin_43860634/article/details/140582139
版权归原作者 飞翔的佩奇 所有, 如有侵权,请联系我们删除。

“springboot系列教程(十六):配置Actuator组件,实现系统监控”的评论:

还没有评论