1. 背景
Spring组件扫描和自动织入,最常遭人抱怨的问题之一就是很难看到应用程序中的组件 是如何装配起来的,有没有一种办法能让你深入应用程序内部一窥究竟,了解它的行为,检查 它的健康状况呢? 我们将了解 Spring Boot的Actuator。它提供了很多生产级的特性,比如监控和度 量Spring Boot应用程序
2. 启用 Actuator
要开启,需要增加一个依赖
compile 'org.springframework.boot:spring-boot-starter-actuator'
默认情况下仅仅开启了少量 health 节点。
为了看到更多,在调试阶段,我们可以开启更多,通过修改配置文件:
management:
endpoints:
web:
exposure:
include: "*"
注意:正式环境一定记得关闭。
这时,打开网址:http://localhost:8080/actuator,可以看到下面这样:
image.png
2. 常用的actuator endpoint
先一些解析常用的actuator endpoint
1) 获得Bean装配报告 /beans
要了解应用程序中Spring上下文的情况,最重要的端点就是/beans。它会返回一个JSON文档, 描述上下文里每个Bean的情况,包括其Java类型以及注入的其他Bean。
路径:http://localhost:8080/actuator/beans
可以看到类似下面内容:
image.png
2) 指示健康状态 /health
image.png
3) 环境变量 /env
/env端点会生成应用程序可用的所有环境属性的列表
image.png
4) 环境变量 /mappings
/mappings端点就提供了这么一个列表,罗列出应用程序发布的全部端点。
image.png
5) 度量情况 /metrics
对运行时度量情况做一个快照,这对评估应用程序的健康情况很有帮助。Actuator 提供了一系列端点,让你能在运行时快速检查应用程序。
image.png
对运行时度量情况做一个快照,这对评估应用程序的健康情况很有帮助。Actuator 7 提供了一系列端点,让你能在运行时快速检查应用程序
3. 了解更多
Actuator 包含了很多的描述节点,列表如下:
image.png
| Endpoint ID | Description | |
|---|---|---|
| auditevents | 显示应用暴露的审计事件 (比如认证进入、订单失败) | |
| info | 显示应用的基本信息 | |
| health | 显示应用的健康状态 | |
| metrics | 显示应用多样的度量信息 | |
| loggers | 显示和修改配置的loggers | |
| logfile | 返回log file中的内容(如果logging.file或者logging.path被设置) | |
| httptrace | 显示HTTP足迹,最近100个HTTP request/repsponse | |
| env | 显示当前的环境特性 | |
| flyway | 显示数据库迁移路径的详细信息 | |
| liquidbase | 显示Liquibase 数据库迁移的纤细信息 | |
| shutdown | 让你逐步关闭应用 | |
| mappings | 显示所有的@RequestMapping路径 | |
| scheduledtasks | 显示应用中的调度任务 | |
| threaddump | 执行一个线程dump | |
| heapdump | 返回一个GZip压缩的JVM堆dump |