基本**搭建
为了**Springboot在生产**中的需要,官方提供了一个特殊的模块Actuator,这个模块可以收集springboot应用的各项指标信息,可以看作是对应用的一个监控功能。此模块监控的信息可以通过两种**获取:JMX或HTTP,方便不同场景下的需要。本文主要以HTTP为主介绍。
另外需要注意的是,springboot的1.x和2.x区别较大,本文介绍的是2.1.0版本。
代码部分为了防止显示错乱,都使用了截图。
要使用Actuator模块很简单,首先你需要有一个springboot应用并且启用了web功能(本文以http**为例),springboot应用如下:
pom.xml内容(截取部分):
application.properties内容如下:
main**启动文件SpdemoApplication.java内容:
测试服务正常的DemoController.java内容:
启动SpdemoApplication类的main**,启动日志(部分):
浏览器访问http://localhost:8080/demo/test
说明springboot搭建成功,运行正常。接下来我们就要添加监控模块。
---------------------划重点-----------------------
pom.xml文件添加actuator模块依赖:
然后重新启动项目,看日志内容:
日志中多了两行内容,意思是在/actuator路径下发布了两个endpoint(s),这个概念后边介绍。
打开浏览器访问http://localhost:8080/demo/actuator/health
这个就是actuator给我们发布出的一个接口,另外一个是
返回内容为空,我们后续可以通过配置添加返回的内容。
截止目前,我们的项目中已经成功的添加了actuator模块,那么接下来,我们先简单了解下actuator的一些细节。
Actuator入门Actuator
spring官网是这么介绍Actuator的:
Definition of Actuator
An actuator is a manufacturing term that refers to a mechanical device for moving or controlling something. Actuators can generate a large amount of motion from a **all change.
这是机械行业的一个术语,一般指作动器,是实施主动控制的关键部件~~~我也不懂机械行业。按我的理解就是一个控制组件,可以根据系统的一些变化产生一系列的动作。
在springboot中,整个监控组件就是Actuator,理解到这里就可以了。
Endpoint基础
Endpoint才是我们重点关注的对象。
在springboot中,endpoint就是一系列可以监控我们系统各项指标的监控点,官方默认给我们提供了二十多个endpoint,而且我们还可以很容易的扩展自己的endpoint。
每一个endpoint都可以单独控制enabled或者disabled。这里的disabled是指的不会加载对应的bean,不会进行初始化。每一个endpoint的名字也是配置所用的id名称。endpoint同时提供了JMX和Web两种操作**。
例如上一步中我们访问的/health和/info就是两个endpoint,所有的endpoint如下表:
如果是web应用,官方还额外提供了几个专用的endpoint:
部分节点功能说明如下(参考网络资料翻译):
Endpoint数据结构说明,参考官网文档:
https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/actuator-api//html/
Endpoint配置
系统默认只发布了两个endpoint,想查看更多的,需要配置
修改application.properties文件:
重启应用,查看日志:
根据日志可以看出这次发布了16个节点,并且启动了8081端口(看配置文件)
查看health接口数据:
endpoint的配置项还有很多,可参考官方文档:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-endpoints-enabling-endpoints