转: www.jianshu.com/p/d59f06724…
今天要讲的是另一个Springboot核心机制,Spring自带的监控神器Actuator,在要求不高的监控环境可以使用,如果需要可视化的监控推荐:Grafana结合prometheus。
1.配置Actuator
1.1 引入Actuator起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<optional>true</optional>
</dependency>
1.2 在application.properties中配置相关参数
设置监控访问的应用根路径,默认是/actuator management.endpoints.web.base-path=/monitor
暴露监控访问接口,默认是/health和/info management.endpoints.web.exposure.include=*
显式屏蔽监控访问接口 management.endpoints.web.exposure.exclude=env,metrics
开放关闭应用程序端点,不建议开启 management.endpoint.shutdown.enabled=true
2.监控接口描述
/health/{component}/{instance} GET 报告程序的健康指标,这些数据由HealthIndicator实现类提供
/info GET 获取程序指定发布的信息,这些信息由配置文件中info打头的属性提供
/configprops GET 描述配置属性(包含默认值)如何注入到bean
/beans GET 描述程序中的bean,及之间的依赖关系
/env GET 获取全部环境属性
/env/{name} GET 根据名称获取指定的环境属性值
/mappings GET 描述全部的URI路径,及和控制器的映射关系
/metrics/{requiredMetricName} GET 统计程序的各种度量信息,如内存用量和请求数
/httptrace GET 提供基本的http请求跟踪信息,如请求头等
/threaddump GET 获取线程活动的快照
/conditions GET 提供自动配置报告,记录哪些自动配置通过,哪些没有通过
/loggers/{name} GET 查看日志配置信息
/auditevents GET 查看系统发布的事件信息
/caches/{cache} GET/DELETE 查看系统的缓存管理器,另可根据缓存管理器名称查询;
另DELETE操作可清除缓存
/scheduledtasks GET 查看系统发布的定时任务信息
/features GET 查看Springcloud全家桶组件信息
/refresh POST 重启应用程序,慎用
/shutdown POST 关闭应用程序,慎用
3.屏蔽某些健康检查
Actuator的健康检查是具有默认机制的,如检测程序中redis的依赖,则会检测redis的连接情况,如果想屏蔽掉redis的检测,则需要重写相关的检测类来实现,以屏蔽redis为例。
3.1创建一个类来继承AbstractHealthIndicator,实现自己的redis健康检查,如:
/**
* 自定义的redis健康检查类型
* 忽略redis的健康检查
* */
@Slf4j
@Component("redisHealthIndicator")
public class OverrideRedisHealthIndicator extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Health.Builder builder)throws Exception {
log.warn("actuator ignore redis health check");
}
}