1. 背景
Spring Boot 包含许多附加功能,可帮助您在将应用程序推送到生产环境时监控和管理应用程序,其中 Actuator 组件可帮助开发者监控了解应用的运行状态。
2.知识
Actuator 模块
Spring Boot 提供了 Actuator 模块。Actuator 翻译过来就是执行器。它是一个制造术语,指的是用于移动或控制某物的机械装置。
Actuator 的端点
Actuator 模块 提供了许多端点可让您监控应用程序并与之交互。有许多内置端点,也支持你自定义端点。
内置的端点
常用端点可用:
ID | 描述 |
---|---|
auditevents |
公开当前应用程序的审计事件信息。需要一个AuditEventRepository 豆子。 |
beans |
显示应用程序中所有 Spring bean 的完整列表。 |
caches |
公开可用的缓存。 |
conditions |
显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。 |
configprops |
显示所有 的整理列表@ConfigurationProperties 。 |
env |
从 Spring 的ConfigurableEnvironment . |
flyway |
显示已应用的任何 Flyway 数据库迁移。需要一颗或多Flyway 颗豆子。 |
health |
显示应用程序运行状况信息。 |
httptrace |
显示 HTTP 跟踪信息(默认情况下,最后 100 个 HTTP 请求-响应交换)。需要一个HttpTraceRepository 豆子。 |
info |
显示任意应用程序信息。 |
integrationgraph |
显示 Spring 集成图。需要依赖于spring-integration-core . |
loggers |
显示和修改应用程序中记录器的配置。 |
liquibase |
显示已应用的任何 Liquibase 数据库迁移。需要一颗或多Liquibase 颗豆子。 |
metrics |
显示当前应用程序的“指标”信息。 |
mappings |
显示所有@RequestMapping 路径的整理列表。 |
quartz |
显示有关 Quartz 调度程序作业的信息。 |
scheduledtasks |
显示应用程序中的计划任务。 |
sessions |
允许从 Spring Session 支持的会话存储中检索和删除用户会话。需要使用 Spring Session 的基于 Servlet 的 Web 应用程序。 |
shutdown |
让应用程序正常关闭。默认禁用。 |
startup |
显示由收集的启动步骤数据ApplicationStartup 。需要SpringApplication 使用BufferingApplicationStartup . |
threaddump |
执行线程转储。 |
如果您的应用程序是 Web 应用程序(Spring MVC、Spring WebFlux 或 Jersey),您可以使用以下附加端点:
ID | 描述 |
---|---|
heapdump |
返回hprof 堆转储文件。需要一个 HotSpot JVM。 |
jolokia |
通过 HTTP 公开 JMX bean(当 Jolokia 在类路径上时,不适用于 WebFlux)。需要依赖于jolokia-core . |
logfile |
返回日志文件的内容(如果已设置logging.file.name 或logging.file.path 属性)。支持使用 HTTPRange 头来检索日志文件的部分内容。 |
prometheus |
以 Prometheus 服务器可以抓取的格式公开指标。需要依赖于micrometer-registry-prometheus . |
3.使用 Actuator 模块
3.1 启用 Actuator 模块
要启用 Actuator 模块,请添加以下依赖项:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
3.2 启用端点
添加了依赖后默认是启动一些内置节点,你有可以控制这些端点的开启
要配置端点的启用, 可使用 management.endpoint.<id>.enabled属性。示例:
management:
endpoint:
shutdown:
enabled: true
3.3 暴露端点
默认会暴露一些常用端点,你也可以使用 include和exclude 控制它。
示例:
management:
endpoints:
web:
exposure:
include: "*"
exclude: "env,beans"
4. 扩展
要了解更多请阅读官方文档,很详细了:
-
官方介绍文档:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html
-
详细介绍文档
https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/
5.参考:
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html
网友评论