spring_reference/spring_boot_actuator.md

75 lines
3.6 KiB
Markdown
Raw Normal View History

2015-02-28 06:00:53 +00:00
###Spring Boot执行器Production-ready特性
Spring Boot包含很多其他的特性它们可以帮你监控和管理发布到生产环境的应用。你可以选择使用HTTP端点JMX或远程shellSSH或Telnet来管理和监控应用。审计Auditing健康health和数据采集metrics gathering会自动应用到你的应用。
* 开启production-ready特性
[spring-boot-actuator](http://github.com/spring-projects/spring-boot/tree/master/spring-boot-actuator)模块提供了Spring Boot所有的production-ready特性。启用该特性的最简单方式就是添加对spring-boot-starter-actuator Starter POM的依赖。
**执行器Actuator的定义**:执行器是一个制造业术语,指的是用于移动或控制东西的一个机械装置。一个很小的改变就能让执行器产生大量的运动。
基于Maven的项目想要添加执行器只需添加下面的'starter'依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
```
对于Gradle使用下面的声明
```java
dependencies {
compile("org.springframework.boot:spring-boot-starter-actuator")
}
```
* 端点
执行器端点允许你监控应用及与应用进行交互。Spring Boot包含很多内置的端点你也可以添加自己的。例如health端点提供了应用的基本健康信息。
端点暴露的方式取决于你采用的技术类型。大部分应用选择HTTP监控端点的ID映射到一个URL。例如默认情况下health端点将被映射到/health。
下面的端点都是可用的:
2015-02-28 06:02:20 +00:00
2015-02-28 06:00:53 +00:00
| ID | 描述 |敏感Sensitive|
| ---- | :----- | :----- |
|autoconfig|显示一个auto-configuration的报告该报告展示所有auto-configuration候选者及它们被应用或未被应用的原因|true|
|beans|显示一个应用中所有Spring Beans的完整列表|true|
|configprops|显示一个所有@ConfigurationProperties的整理列表|true|
|dump|执行一个线程转储|true|
|env|暴露来自Spring ConfigurableEnvironment的属性|true|
|health|展示应用的健康信息(当使用一个未认证连接访问时显示一个简单的'status',使用认证连接访问则显示全部信息详情)|false|
|info|显示任意的应用信息|false|
|metrics|展示当前应用的'指标'信息|true|
|mappings|显示一个所有@RequestMapping路径的整理列表|true|
|shutdown|允许应用以优雅的方式关闭(默认情况下不启用)|true|
|trace|显示trace信息默认为最新的一些HTTP请求|true|
**注**根据一个端点暴露的方式sensitive参数可能会被用做一个安全提示。例如在使用HTTP访问sensitive端点时需要提供用户名/密码如果没有启用web安全可能会简化为禁止访问该端点
1. 自定义端点
使用Spring属性可以自定义端点。你可以设置端点是否开启enabled是否敏感sensitive甚至它的id。例如下面的application.properties改变了敏感性和beans端点的id也启用了shutdown。
```java
endpoints.beans.id=springbeans
endpoints.beans.sensitive=false
endpoints.shutdown.enabled=true
```
**注**:前缀'endpoints + . + name'被用来唯一的标识被配置的端点。
默认情况下除了shutdown外的所有端点都是启用的。如果希望指定选择端点的启用你可以使用endpoints.enabled属性。例如下面的配置禁用了除info外的所有端点
```java
endpoints.enabled=false
endpoints.info.enabled=true
```
2015-02-28 04:58:59 +00:00