前言【资料获取】
曾经看到Spring Boot Actuator这个框架时,一直在想,它到底有什么作用呢?虽然知道它提供了很多端点,有助于应用程序的监控和管理,但如果没有直接的实践案例,还是很难有说服力的。
那么本文便基于Spring Boot系统如何集成Actuator,如何使用,以及如何自定义一个端点(Endpoint)来展开。
Spring Boot Actuator简介
Spring Boot Actuator是Spring Boot提供用于对应用系统进行自省和监控的功能模块,基于此开发人员可以方便地对应用系统某些监控指标进行查看、统计、审计、指标收集等。Actuator提供了基于Http端点或JMX来管理和监视应用程序。
刚接触Actuator朋友通常会有一个疑惑,Actuator可以通过Http端点进行访问,那么它与Spring Web提供的@Controller的对外服务有什么区别呢?它们都可以通过Http的方式让外部来访问应用程序,但功能的定义边界不同。就像上面说的Actuator通常用于应用程序本身运行情况的监控和操作,而@Controller更多的是业务层面运用。通过与@Controller这么一对照,你可能更容易理解Actuator的作用了。
Actuator默认功能【资料获取】
Actuator提供了一些默认的REST接口,基于这些接口我们可以很方便的了解应用程序的运行状况。其中某些端口比较敏感,需要在指定的权限下才能进行访问。
通过Actuator可以监控应用程序的Health健康信息、Info应用信息、HTTP Request跟踪信息、Metrics信息、@RequestMapping的路径信息、应用程序的各种配置信息、程序请求的次数时间等各种信息。
这里暂且不做具体端点的解释,因为不同的版本还是有所出入的。先来看一下将所有的端点打开,然后访问http://localhost:8080/actuator 能够看到的端点信息。
至于你所使用的版本包含哪些端点,也采用同样的方法来进行查看。
Spring Boot的集成
将Spring Boot Actuator集成到Spring Boot项目中是非常方便的,只需在pom文件中添加对应的依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>