Spring Boot Actuator 是 Spring Boot 的一个子项目,它为应用程序添加了一系列的生产级功能,以帮助你监控和管理应用。Actuator 主要用于暴露应用程序的内部运行情况,如健康检查、度量、环境配置、线程状态、日志等。
通过使用 Actuator,你可以获得应用程序的多项运行时信息,这对于诊断问题、监控应用运行状况以及评估性能非常有帮助。所有这些信息可以通过 HTTP 端点、JMX、SSH 或其他远程外壳访问,这取决于你的配置。
Actuator 主要特性
-
健康检查(Health Checks) :
Actuator 提供
/actuator/health
端点来展示应用的健康状况。它可以显示简单的状态(如 UP 或 DOWN),也可以提供更详细的信息,比如数据库连接、磁盘空间和自定义检查的状态。 -
度量收集(Metrics) :
/actuator/metrics
端点提供了丰富的度量信息,包括 JVM 内存使用情况、垃圾回收统计、Web 请求计数等。这些信息可以帮助理解应用程序的性能和行为。 -
应用信息(Info) :
通过
/actuator/info
端点,可以展示应用程序的任何自定义信息,例如版本、描述或自定义元数据。这些信息是可配置的。 -
环境细节(Environment) :
Actuator 提供了
/actuator/env
端点,用来展示应用程序的环境属性,包括所有的 Spring Configuration 属性、系统属性、环境变量等。 -
日志级别管理(Loggers) :
你可以通过
/actuator/loggers
端点查看和修改应用程序中的日志记录器和它们的日志级别。 -
线程详情(Threaddump) :
/actuator/threaddump
端点用来获取应用程序的线程活动报告,能帮助找出并发问题。 -
HTTP跟踪(Httptrace) :
当配置启用的时候,
/actuator/httptrace
端点会记录最近的 HTTP 请求-响应交换。 -
应用配置属性(Configprops) :
/actuator/configprops
端点用于展示整个应用程序中所有的@ConfigurationProperties
。
启用和访问 Actuator 端点
默认情况下,当你在项目中添加了 spring-boot-starter-actuator
依赖后,所有端点除了 shutdown
外都是启用的。
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
你可以在 application.properties
或 application.yml
文件中配置哪些端点是暴露的或者关闭的。例如:
properties
management.endpoints.web.exposure.include=health,info
management.endpoints.web.exposure.exclude=env,beans
Spring Boot 2.x 中,Actuator 端点默认映射在 /actuator
基础路径下。例如,要访问健康检查端点,你可以使用以下 URL:
http://localhost:8080/actuator/health
如果你希望更改基础路径,可以在配置文件中进行设置:
properties
management.endpoints.web.base-path=/management
然后健康检查端点会变成:
http://localhost:8080/management/health
总之,Actuator 是 Spring Boot 的一个强大特性,使得应用程序的监控和管理变得更加简单有效。