Spring Boot Actuator 是 Spring Boot 提供的一个模块,它为开发人员提供了生产级的功能,无需编写额外的代码。Actuator 使得开发者能够轻松地监控和管理应用程序的状态,包括健康检查、指标收集、审计日志、跟踪等。
Spring Boot Actuator 提供的主要功能包括:
-
健康检查 (Health)
- 检查应用程序及其依赖项的健康状态。
- 可以自定义检查逻辑。
-
指标 (Metrics)
- 收集应用程序的性能指标,如内存使用、CPU 使用率、垃圾回收等。
- 支持自定义指标。
-
审计 (Audit)
- 记录重要的操作,如登录、注销等事件。
- 可以自定义审计事件。
-
跟踪 (Tracing)
- 支持分布式跟踪,可以追踪请求在整个微服务架构中的流转过程。
- 可以与第三方跟踪系统集成。
-
HTTP 端点 (Endpoints)
- 提供了一系列预定义的 HTTP 端点,允许通过 HTTP 请求访问 Actuator 的功能。
- 包括但不限于
/health
,/info
,/metrics
,/env
,/trace
等。
-
配置元数据 (Configuration Metadata)
- 提供应用程序配置属性的元数据,包括描述、默认值等信息。
-
飞检 (Flyway)
- 集成了 Flyway 数据库迁移工具,可以自动管理数据库模式的变更。
-
H2 控制台 (H2 Console)
- 内置 H2 控制台,可以直接在浏览器中访问数据库。
-
日志管理 (Loggers)
- 允许动态修改日志级别。
-
审计事件 (Audit Events)
- 收集和报告审计事件。
-
堆栈跟踪 (Dump)
- 提供应用程序的当前堆栈跟踪信息。
-
液滴信息 (Droplet Info)
- 显示构建信息,如版本号、构建时间等。
-
关机 (Shutdown)
- 提供一个 HTTP 端点来触发应用程序的优雅关机。
-
JMX 端点 (JMX Endpoints)
- 提供 JMX 接口来访问 Actuator 的功能。
-
自定义端点 (Custom Endpoints)
- 允许开发者定义自己的端点来扩展 Actuator 的功能。
如何启用 Actuator
要在 Spring Boot 应用程序中启用 Actuator,只需要添加以下依赖:
<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Gradle -->
implementation 'org.springframework.boot:spring-boot-starter-actuator'
然后,你可以通过配置文件来开启特定的端点或者禁用不必要的端点。例如,要启用所有端点,可以配置如下:
management:
endpoints:
web:
exposure:
include: "*"
示例代码
这里是一个简单的示例,展示了如何在 Spring Boot 应用程序中使用 Actuator:
@SpringBootApplication
public class ActuatorDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ActuatorDemoApplication.class, args);
}
}
配置文件 application.yml
或 application.properties
可能如下所示:
# application.yml
management:
endpoints:
web:
exposure:
include: "*"
# 或者 application.properties
management.endpoints.web.exposure.include=*
访问端点
一旦配置好,你就可以通过 HTTP 请求来访问这些端点。例如,你可以通过浏览器或 HTTP 客户端访问 /health
端点来查看应用程序的健康状态:
http://localhost:8080/actuator/health
Spring Boot Actuator 为开发者提供了一个强大的工具集,可以轻松地管理和监控 Spring Boot 应用程序。