Springboot之Actuator
澳大利亚国立大学(澳大利亚)校训:“重要的是弄清事物的本质。”
昨天因为加班耽搁了写文章,在此反思5分钟。。。。
今天要讲的是另一个Springboot核心机制,Spring自带的监控神器Actuator,集成非常简单,使用起来更是简单到爽歪歪,就是简单地rest接口调用查看,在要求不高的监控环境可以使用,如果需要可视化的监控推荐:Grafana结合prometheus。
一 配置Actuator
1 引入Actuator起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.1.3.RELEASE</version>
<optional>true</optional>
</dependency>
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
二 监控接口描述
1 /health/{component}/{instance} GET
报告程序的健康指标,这些数据由HealthIndicator实现类提供
2 /info GET
获取程序指定发布的信息,这些信息由配置文件中info打头的属性提供
3 /configprops GET
描述配置属性(包含默认值)如何注入到bean
4 /beans GET
描述程序中的bean,及之间的依赖关系
5 /env GET
获取全部环境属性
6 /env/{name} GET
根据名称获取指定的环境属性值
7 /mappings GET
描述全部的URI路径,及和控制器的映射关系
8 /metrics/{requiredMetricName} GET
统计程序的各种度量信息,如内存用量和请求数
9 /httptrace GET
提供基本的http请求跟踪信息,如请求头等
10 /threaddump GET
获取线程活动的快照
11 /conditions GET
提供自动配置报告,记录哪些自动配置通过,哪些没有通过
12 /loggers/{name} GET
查看日志配置信息
13 /auditevents GET
查看系统发布的事件信息
14 /caches/{cache} GET/DELETE
查看系统的缓存管理器,另可根据缓存管理器名称查询;
另DELETE操作可清除缓存
15 /scheduledtasks GET
查看系统发布的定时任务信息
16 /features GET
查看Springcloud全家桶组件信息
17 /refresh POST
重启应用程序,慎用
18 /shutdown POST
关闭应用程序,慎用
三 屏蔽某些健康检查
Actuator的健康检查是具有默认机制的,如检测程序中redis的依赖,则会检测redis的连接情况,如果想屏蔽掉redis的检测,则需要重写相关的检测类来实现,以屏蔽redis为例。
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");
}
}
2 自定义类的名称必须是redisHealthIndicator,不然无法覆盖原有的RedisHealthIndicator。
特此声明:
分享文章有完整的知识架构图,将从以下几个方面系统展开:
1 基础(Linux/Spring boot/并发)
2 性能调优(jvm/tomcat/mysql)
3 高并发分布式
4 微服务体系
如果您觉得文章不错,请关注阿伦故事,您的支持是我坚持的莫大动力,在此受小弟一拜!
每篇福利: