SpringBoot的actuator使用

1,481 阅读2分钟

转: 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");

        }

    }

3.2 自定义类的名称必须是redisHealthIndicator,不然无法覆盖原有的RedisHealthIndicator。