Springboot之Actuator

こ雲淡風輕ζ 提交于 2020-08-16 05:06:11

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


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

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


每篇福利:

 


作者:阿伦故事2019
链接:https://www.jianshu.com/p/d59f06724f1b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!