Springboot之Actuator

作者: 阿伦故事2019 | 来源:发表于2019-07-24 21:03 被阅读0次

    澳大利亚国立大学(澳大利亚)校训:“重要的是弄清事物的本质。”


        昨天因为加班耽搁了写文章,在此反思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 微服务体系

    如果您觉得文章不错,请关注阿伦故事,您的支持是我坚持的莫大动力,在此受小弟一拜!


    每篇福利:

    相关文章

      网友评论

        本文标题:Springboot之Actuator

        本文链接:https://www.haomeiwen.com/subject/bzwfrctx.html