spring-boot-actuator
模块提供了很多特性让我们可以选择使用 HTTP 或者 JMX 来监视和管理我们的应用,启用这些特性的最简单方式就是在应用加入 spring-boot-starter-actuator
依赖。
1 | <dependency> |
Actuator 内置了很多端点来管理我们的应用,这些端点使用 /actuator
为前缀,我们添加自己的端点,如 /actuator/health
提供基本的应用健康信息。
- 启用端点
默认情况下,除了 shutdown
之外的所有端点都是启用的,我们可以使用 management.endpoint.<id>.enabled
配置启用或禁用某一个端点,management.endpoints.enabled-by-default
来修改端点的默认启用状态。如下面配置只启用 info
端点:
1 | management.endpoints: |
- 暴露端点
由于端点中可能包含一些敏感信息,默认情况下大部分 HTTP 端点都是不暴露的,但可以通过配置来暴露或隐藏某些端点,management.endpoints.<jmx|web>.exposure.<exclude|include>
配置项 include
表示暴露的端点 ID , exclude
表示隐藏的端点 ID ,并且 exclude
的优先级要高于 include
,如下配置只暴露 env
及 info
端点:
1 | management.endpoints.web.exposure.include: env,info |
Actuator 还有很多其他特性,大家可参考官方文档 Part V. Spring Boot Actuator: Production-ready features,下面是 2.0.0 版本支持的端点列表:
ID | URL | 描述 | 默认启用 | 默认暴露JMX | 默认暴露HTTP |
---|---|---|---|---|---|
auditevents | /actuator/auditevents | 为当前应用程序公开审计事件信息 | 是 | 是 | 否 |
beans | /actuator/beans | 显示应用中所有的 Spring bean 列表 | 是 | 是 | 否 |
conditions | /actuator/conditions | 显示在配置和自动配置类上评估的条件,以及它们执行或不匹配的原因 | 是 | 是 | 否 |
configprops | /actuator/configprops | 显示所有被 @ConfigurationProperties 标注的配置信息 |
是 | 是 | 否 |
env | /actuator/env | 暴露 Spring 的 ConfigurableEnvironment 配置 |
是 | 是 | 否 |
flyway | /actuator/flyway | 显示已应用的任何Flyway数据库迁移 | 是 | 是 | 否 |
health | /actuator/health | 显示应用健康信息 | 是 | 是 | 是 |
httptrace | /actuator/httptrace | 显示 HTTP 跟踪信息(默认情况下,最后 100 个 HTTP 请求-响应) | 是 | 是 | 否 |
info | /actuator/info | 显示任意应用程序信息 | 是 | 是 | 是 |
loggers | /actuator/loggers | 显示和修改应用程序中的日志配置 | 是 | 是 | 否 |
liquibase | /actuator/liquibase | 显示已应用的任何 liquibase 数据库迁移 | 是 | 是 | 否 |
metrics | /actuator/metrics | 显示当前应用程序的“度量”信息 | 是 | 是 | 否 |
mappings | /actuator/mappings | 显示所有被 @RequestMapping 标注的 Mapping 信息 |
是 | 是 | 否 |
scheduledtasks | /actuator/scheduledtasks | 显示程序中的定时任务 | 是 | 是 | 否 |
sessions | /actuator/sessions | 允许从 Spring session 支持的会话存储中检索和删除用户会话。在使用 Spring 会话对反应性 web 应用程序的支持时不可用 | 是 | 是 | 否 |
shutdown | /actuator/shutdown | 让应用程序优雅地关闭 | 否 | 是 | 否 |
threaddump | /actuator/threaddump | 输出线程堆栈 | 是 | 是 | 否 |
heapdump | /actuator/heapdump | 返回一个 GZip 压缩的 hprof 堆转储文件 | 是 | N/A | 否 |
jolokia | /actuator/jolokia | 在 HTTP 上公开 JMX bean (当 Jolokia 在类路径上时,没有 WebFlux 可用) | 是 | N/A | 否 |
logfile | /actuator/logfile | 返回日志文件的内容(如果是日志记录的话)。文件或日志记录。已经设置了路径属性。支持使用HTTP范围头来检索日志文件内容的一部分 | 是 | N/A | 否 |
prometheus | /actuator/prometheus | 公开度量标准,该格式可以被 Prometheus 服务器清除 | 是 | N/A | 否 |
本文代码位置:https://github.com/niuhp/springcloud-sample/tree/master/actuator