Actuator现在与技术无关,而在1.x中,它与MVC相关联,因此与Servlet API相关联。
在2.x中,Actuator定义了它的模型,可插拔和可扩展,而不依赖于MVC。因此,通过这个新模型,我们可以利用MVC和WebFlux作为底层Web技术。
此外,可以通过实施正确的适配器来添加即将到来的技术。
最后,JMX仍然支持在没有任何其他代码的情况下公开端点。
上述的说明参考Actuator官网。
官网地址:
https://www.baeldung.com/spring-boot-actuators
环境要求
JDK:1.8
SpringBoot:1.5.9.RELEASE
首先还是Maven的相关依赖:
pom.xml文件如下:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>test</scope> </dependency> </dependencies>然后就是application.yml的文件配置,这里的配置主要是指定监控的端口和路径以及关闭安全认证等等。
application.yml:
server: port: 8181 management: security: enabled: false port: 8888 context-path: /monitor endpoints: shutdown: enabled: true info: app: name:springboot-actuator version:1.0 代码编写其实这块不需要代码的编写,因为它只需要你在项目中添加了该依赖并进行配置之后即可使用。这里我们在创建一个普通的SpringBoot项目并且添加了Actuator的相关依赖,然后通过调用Actuator提供的一些接口就可以得知相关的信息。
这些接口的一些说明如下:
1./autoconfig 可以得到配置生效信息
/configprops 可以得到属性的内容和默认值
/beans 可 以得到bean的别名、类型、是否单例、类的地址、依赖等信息
/dump 可 以得到线程名、线程ID、线程的状态、是否等待锁资源等信息
/env 可以得到环境变量、JVM 属性、命令行参数、项目使用的jar包等信息
5.1 /sun.boot.library.path 可以得到JDK安装路径
/health 可以得到磁盘检测和数据库检测等信息
/mappings 可以得到全部的URI路径,以及它们和控制器的映射关系
/metrics 可以得到JVM内容使用、GC情况、类加载信息
8.1 /gc.* 可以得到GC相关信息
8.2 /mem.* 可以得到内存信息 ...
/info 可以得到自定义的配置信息
/shutdown 可以进行关闭程序 post请求
/trace 可以得到所Web请求的详细信息
12 ....
更多的相关配置说明可以查看官方文档!
如果通过通过接口信息返回的数据进行查看不够清晰明了的话,可以结合SpringCloud Hystrix-Dashboard进行转换图表查看。
具体使用可以参考: SpringCloud学习系列之三----- 断路器(Hystrix)和断路器监控(Dashboard) 这篇文章。
我们成功启动该程序之后,便来进行测试。
首先查看启动日志,会发现启动了两个端口,一个是springboot项目自身的端口,还有一个Actuator监控的端口。
示例图:
对外提供的Actuator主要是可以帮助我们获取一些程序以及一些环境的相关信息。
比如获取程序健康状态。
在浏览器输入:
:8888/monitor/health
即可查看。
示例图:
当然也可以自定一些程序信息,比如定义程序版本。
在浏览器输入:
:8888/monitor/info
示例图: