Actuator 是个什么呢?
Actuator 是Spring boot 在应用程序中提供的众多web端点,提供他们了解应用程序运行时的内部状况,有了 Actuator ,你就可以知道Bean在 Spring 应用程序上下文里是如何组装在一起的,掌握应用程序可以获取环境的属性信息,运行时度量信息的快照…
说白了,就是可以通过 url 查看当前项目的环境信息等等的一个控件
具体先来试一试就知道了
加入Maven依赖
<!--Actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
加入依赖启动项目后就可以输入 url 来查看项目信息了
这里需要提前说一下
Spring boot 2.0的将所有的端点都屏蔽了
并且将所有的默认端点都移动到了 /actuator 这个下面
所以首先要打开所有的被屏蔽的端点
#Actuator
management:
endpoints:
web:
exposure:
include: "*" # * 在yaml 文件属于关键字,所以需要加引号
这样即打开了所有被屏蔽的端点。接下来就可以试一下了
输入以下路径 注意 如果是低版本的话将 actuator 去掉 比如 1.4.3 , 1.5.4
http://localhost:8080/actuator/beans
可以看到返回的信息 是json格式的
这样看起来比较费劲,可以搜素一下 json
可以在线格式化一下再看。
Actuator 提供了13个端点
具体如下
HTTP方法 | 路径 | 描述 |
---|---|---|
GET | /autoconfig | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
GET | /configprops | 描述配置属性(包含默认值)如何注入Bean |
GET | /beans | 描述应用程序上下文里的全部Bean,以及它们的关系 |
GET | /dump | 获取线程活动的快照 |
GET | /env | 获取全部环境属性 |
GET | /env/{name} | 根据名称获取特定的环境属性值 |
GET | /health | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
GET | /mappings | 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
GET | /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
GET | /metrics/{name} | 报告指定名称的应用程序度量值 |
POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
GET | /trace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) |
2.0 以上部分更改:
1.x 端点 | 2.0 端点(改变) |
---|---|
/actuator | 不再可用。 但是,在 management.endpoints.web.base-path 的根目录中有一个映射,它提供了到所有暴露端点的链接。 |
/auditevents | 该after参数不再需要。 |
/autoconfig | 重命名为 /conditions |
/docs | 不再可用 |
/health | 现在有一个 management.endpoint.health.show-details 选项 never, always, when-authenticated,而不是依靠 sensitive 标志来确定 health 端点是否必须显示全部细节。 默认情况下,/actuator/health公开并且不显示细节。 |
/trace | 重命名为 /httptrace |
更多的详情可以输入 /actuator/mappings 来查看所有的端点详情,包括自己添加的 url
Beans 的装配报告
"beans": {
"endpointCachingOperationInvokerAdvisor": {
"aliases": [],
"scope": "singleton",
"type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor",
"resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]",
"dependencies": ["environment"]
},
........................
}
解释:
aliases: 别名
scope: Bean的作用域(通常是单例,这也是默认的作用域,是否单例)
resource: .class文件的物理位置,通常是一个URL,指向构建出的JAR文件,这会随着应用程序的构建和运行方式发生变化
dependencies: 当前Bean 注入的BeanID列表
type: Bean的java类型