监管
通过引入spring-boot-starter-actuator,可以使用Spring Boot为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等。
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置
#直接开启和暴露所有端点,在使用Http访问端点时,需要加上默认/actuator前缀
management.endpoints.web.exposure.include=*
#开启远程应用关闭功能
endpoints.shutdown.enabled=true
#定制端点访问根路径
management.context-path=/manage
#关闭http端点
management.port=-1
#将原本beans路径改为mybean,覆盖之前
endpoints.beans.id=mybean
#将原本beans路径改为bean,覆盖之前,优先级更高
endpoints.beans.path=/bean
#beans路径失效
endpoints.beans.enabled=false
#关闭所有端点访问
endpoints.enabled=false
#除了beans
endpoints.beans.enabled=true
#端点地址端口改为8181,为-1时无端口
management.port=8181
监控和管理端点
端点名 | 描述 |
---|---|
autoconfig | 所有自动配置信息 |
auditevents | 审计事件 |
beans | 所有Bean的信息 |
configprops | 所有配置属性 |
dump | 线程状态信息 |
env | 当前环境信息 |
health | 应用健康状况 |
info | 当前应用信息 |
metrics | 应用的各项指标 |
mappings | 应用@RequestMapping映射路径 |
shutdown | 关闭当前应用(使用POST方法) |
trace | 追踪信息(最新的http请求) |
自定义健康状态指示器
/**
* 自定义健康状态指示器
* 1、编写一个指示器 实现 HealthIndicator 接口
* 2、指示器的名字 xxxxHealthIndicator
* 3、加入容器中
*/
@Component
public class MyAppHealthIndicator implements HealthIndicator {
@Override
public Health health() {
//自定义的检查方法
//Health.up().build()代表健康
return Health.down().withDetail("msg","服务异常").build();
}
}