zoukankan      html  css  js  c++  java
  • SpringBoot要点之使用Actuator监控

    Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
    在pom文件中加入spring-boot-starter-actuator依赖如下:
    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-actuator</artifactId>
    4. </dependency>


    5. Actuator提供的主要监控项。 


    /autoconfig用来查看自动配置的使用情况,包括:哪些被应用、哪些未被应用以及它们未被应用的原因、哪些被排除。 

    /configprops可以显示一个所有@ConfigurationProperties的整理列表。

    /beans可以显示Spring容器中管理的所有Bean的信息。 

    /dump用来查看应用所启动的所有线程,每个线程的监控内容如下图所示。 

    /env用来查看整个应用的配置信息,使用/env/[name]可以查看具体的配置项。 

    /health用来查看整个应用的健康状态,包括磁盘空间使用情况、数据库和缓存等的一些健康指标。 

    此外,Springboot还允许用户自定义健康指标,只需要定义一个类实现HealthIndicator接口,并将其纳入到Spring容器的管理之中。  



    1. @Component


    2. public class MyHealthIndicator implements HealthIndicator{




    3. @Override


    4. public Health health() {


    5. return Health.down().withDetail("error", "spring boot error").build();


    6. }




    7. }

    /info可以显示配置文件中所有以info.开头或与Git相关的一些配置项的配置信息。

    /mappings用来查看整个应用的URL地址映射信息。  

    /metrics用来查看一些监控的基本指标,也可以使用/metrics/[name]查看具体的指标。 

    /shutdown是一个POST请求,用来关闭应用,由于操作比较敏感,默认情况下该请求是被禁止的,若要开启需在配置文件中添加以下配置:  

    endpoints.shutdown.enabled: true

    /trace用来监控所有请求的追踪信息,包括:请求时间、请求头、响应头、响应耗时等信息。 

    Actuator监控管理

    打开或关闭

    Actuator监控的所有项目都定义在spring-boot-actuator-x.x.x.RELEASE.jar的org.springframework.boot.actuate.endpoint包中,包含以下Endpoint。 

    这些Endpoint都继承自AbstractEndpoint,AbstractEndpoint中定义了两个重要的属性:enabled和sensitive。

    其中,enabled用来打开或关闭该监控项,语法为:endpoints.[endpoint_name].enabled=false/true,以关闭/autoconfig监控项为例,其配置如下。 

    endpoints.autoconfig.enabled=false

    sensitive用来配置该监控项是否属于敏感信息,访问敏感信息需要用户具有ACTUATOR角色权限,或者使用以下配置关闭安全限制。  

    management.security.enabled=false

    端口与地址

    除了使用与应用相同的端口访问监控地址外,我们还可以在配置文件中增加 management.port 配置项来自己指定监控的请求端口。 

    management.port=9090

    还可以通过 management.address 配置项来指定可以请求监控的IP地址,比如只能通过本机监控,可以设置 management.address = 127.0.0.1 。  

  • 相关阅读:
    linux C程序中获取shell脚本输出(如获取system命令输出)
    Vue实现网页在线拍照和上传 幸福n
    c# thread数线程的创建多线程(一)
    C#开启异步 线程的四种方式(二)
    web学习网站
    C#中的set和get方法
    C# 多线程之Task任务(三)
    Taro3 扫描不同二维码参数不同,但是热启动之后参数不变
    Taro 弹窗阻止小程序滑动穿透(亲测有效) tabbar数据缓存不更新 入口场景值不同
    《Webpack+Babel入门与实例详解》出版了
  • 原文地址:https://www.cnblogs.com/doit8791/p/11470252.html
Copyright © 2011-2022 走看看