Spring Boot的Actuator提供了运行状态的监控的功能,Actuator的监控数据可以通过REST、远程shell(1.5之后的版本弃用)和JMX
方式获得。我们首先介绍通过REST方式查看Actuator的节点的方法,这是最常见且简单的方法。
在工程的pom
文件中引入Actuator的起步依赖spring-boot-starter-actuator,代码清单如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在配置文件application.yml
中配置management.port
和management.security.enabled
,这两个配置分别配置了Actuator对外暴露REST API
接口的端口号和Actuator采取的非安全验证方式,其代码清单如下:
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
shutdown:
enabled: true
server:
port: 9001
在上述的配置代码中指定了Actuator对外暴露的REST API
接口的端口号 为 9001,如果不指定,端口为应用程序的启动端口,这样做的目的是将程序端口和程序的监控端口分开。将配置management.endpoints.web.exposure.include
设置为“*”,暴露Actuator组件的所有节点;将配置management.endpoint.shutdown
设置为“true”,开启可以通过请求来关闭程序的功能。启动工程,在控制台可以看到如下信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aznyA0zr-1582192408624)(C:\Users\DuXiaobo\AppData\Roaming\Typora\typora-user-images\1580874829607.png)]
由以上信息可知,Spring Boot的Actuator监控端口为9001.
Spring Boot的Actuator关键特性是在应用程序里提供了众多的Web节点,通过这些节点可以实时地了解应用程序的运行状况。有了Actuator,你可以知道Bean在Spring应用程序上下文里是如何组装在一起的,并且可以获取环境属性的信息和运行时度量信息等。
类型 | API端口 | 描述 |
---|---|---|
GET | /autoconfig | 该端点用来获取应用的自动化配置报告,其中包括所有自动化配置的候选项。同时还列出了每个候选项自动化配置的各个先决条件是否满足。所以,该端点可以帮助我们方便的找到一些自动化配置为什么没有生效的具体原因。该报告内容将自动化配置内容分为两部分:
|
GET | /configprops | 描述配置属性(包含默认值)
|
GET | /beans | 描述应用程序上下文里全部的Bean,以及它们的关系
|
GET | /threaddump | 获取线程活动的快照 |
GET | /env | 获取应用所有可用的环境属性报告。包括:环境变量、JVM属性、应用的配置配置、命令行中的参数 |
GET | /env/{name} | 根据名称获取特定的环境属性值 /env 接口还能用来获取单个属性的值,只需要在请求时在 /env 后加上属性名即可 |
GET | /sessions | 用户会话 |
GET | /health | 应用程序的健康指标 |
GET | /info | 该端点用来返回一些应用自定义的信息。默认情况下,该端点只会返回一个空的json内容 我们可以在application.properties配置文件中通过info前缀来设置一些属性 |
GET | /auditevents | 显示当前应用程序的审计事件信息 |
GET | /conditions | 显示配置类和自动配置类的状态,以及它们被应用或未被应用的原因 |
GET | /flyway | 显示数据库迁移路径 |
GET | /liquibase | 展示任何Liquibase数据迁移路径(如果存在) |
GET | /loggers | 显示和设置Logger的级别 |
GET | /mappings | 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 罗列出应用程序发布的全部接口
|
GET | /metrics | 报告各种应用程序度量信息,比如内存用量、HTTP请求计数、线程信息、垃圾回收信息等
|
GET | /scheduledtasks | 显示应用程序中的计划任务 |
GET | /httptrace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)。 默认情况下,跟踪信息的存储采用org.springframework.boot.actuate.trace.InMemoryTraceRepository实现的内存方式,始终保留最近的100条请求记录 |
GET | /caches | 暴露可用缓存 |
POST | /shutdown | 关闭应用程序,需要将management.endpoint.shutdown设置为true |