Spring Boot 的Actuator提供了甚多生产级的特性,比如监控和度量Spring Boot应用程序。
揭秘Actuator端点
Actuator提供了13个端点:
要启用Actuator的端点,需在项目里引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
上表中各个端点可以分为三大类:配置端点、度量端点和其他端点。
- 查看配置明细
a.获取Bean的装配报告
要了解应用程序中Spring的上下文情况,最重要的端点就是/beans。发起GET请求后,就可以所有运行的Bean条目。
b.详解自动配置
/beans端点产生的报告能告诉你所有的Bean,而/autoconfig端点能告诉你为什么会有这个Bean,或者为什么有这个Bean。
c.查看配置属性
/env端点会生成应用程序可用的所有环境属性的列表,无论这些属性是否用到
d.生成端点到控制器的映射
/mappings端点能够以列表的形式罗列出应用程序发布的全部端点
- 运行时度量
a.查看应用程序的度量值
运行中的应用程序有诸多的计数器和度量器,/metrics端点提供了这些东西的快照
b.追踪Web请求
/trace端点能报告Web请求的详细信息,包括请求方法、路径、时间戳以及请求和响应的头信息
c.导出线程活动
/dump端点会生成当前线程活动的快照
d.监控应用程序的健康情况
如果你想知道自己的应用程序是否在运行,可以直接访问/health端点。在最简单的情况下,会返回一个最简单的JSON,如下:
{
"status": "UP"
}
返回这个就表示应用程序正在进行中。
- 关闭应用程序
假设你要关闭运行中的应用程序,Actuator的/shutdown端点就用上了。但这个请求是POST,一般来说返回结果应该是:
{
"message": "This endpoint is disabled"
}
原因是,你并没有启用该端点。你需要在application.yml中声明:
endpoints:
shutdown:
enabled: true
这样就启用了该端点。但你要确保,并非所有人都可以关闭应用程序,这时你应该将/shutdown保护起来。
- 获取应用信息
Spring Boot 还有一个/info的端点。/info端点能展示你所希望发布的应用信息。默认请求该端点只会是:
{}
可以在application.yml里配置:
info:
contactEmail: xxx@xxx.com
再次访问该端点,就会得到:
{
"contactEmail":"xxx@xxx.com"
}