• SpringBoot监控工具包Actuator使用


    一、什么是Actuator?

      当一个SpringBoot项目运行的时候,我们可能需要对这个项目进行实时监控,actuator是一个监控工具包,用来在程序运行时监控运行数据,开发者可以使用http端点或jmx来管理和监控应用程序的健康状况、应用信息、内存使用状况等。web服务端点是指您的程序用来和其他应用程序进行通信的url地址。

      在SpringBoot中,端点(endpoints)可用于监控应用及与应用进行交互,Spring Boot包含很多内置的端点,你也可以添加自己的。例如,health端点提供了应用的基本健康信息。每个端点都可以启用或禁用。这控制着端点是否被创建,并且它的bean是否存在于应用程序上下文中。要远程访问端点,除了启用端点,还必须通过JMX或HTTP进行暴露。大部分应用选择HTTP方式暴露,端点的ID映射到一个带/actuator前缀的URL。

      SpringBoot2的端点默认根路径已经由 “/” 调整到了 “/actuator“ 下,可以在配置文件application.yml中配置根路径:management.endpoints.web.base-path=/ 。SpringBoot内置了如下一些端点:

       在web项目中还可以使用如下端点:

      二、Actuator的使用

       1、引入jar包:使用Actuator需要在springboot项目中引入jar包,Maven引入方式如下

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

      2、启用端点:默认情况下,除shutdown以外的所有端点均已启用。要配置单个端点的启用,请使用management.endpoint.<id>.enabled属性。配置举例如下

    #启用端点
    management:
    endpoints:
    enabled-by-default:
    false #全局配置,关闭所有端点 endpoint: #单一端点配置 shutdown: enabled:true #启用shutdown端点

      3、暴露端点:要远程访问端点,必须通过JMX或HTTP进行暴露,配置举例如下

    #暴露监控端点
    management:
       endpoints:     
    web: #http方式暴露
    base
    -path:/actuator #actuator提供的api接口根路径 exposure: include: "*" #需要开放的端点,默认只打开health、info,*表示所有
    exclude: #需要排除的端点
    jmx: #jmx方式暴露
    exposure:
    include: "*"
    exclude:

        注意:禁用的端点将从应用程序上下文中完全删除。如果您只想更改端点公开(对外暴露)的技术,请改为使用includeexclude属性。由于端点可能包含敏感信息,因此应仔细考虑何时公开它们。下表显示了内置端点的默认暴露情况。

       4、端点访问路径:默认情况下,端点通过使用端点的ID在/actuator路径下的HTTP上公开。例如,beans端点暴露在/actuator/beans下。如果要将端点映射到其他路径,则可以使用management.endpoints.web.path-mapping属性。另外,如果您想更改基本路径,则可以使用management.endpoints.web.base-path

      5、端点跨域访问:默认情况下,CORS支持处于禁用状态,只有在设置了management.endpoints.web.cors.allowed-origins属性后才能启用。以下配置允许来自example.com域的GET和POST调用:

    management:
       endpoints:     
          web:              
            cors:
               allowed-origins = http://example.com
               allowed-methods = POST,GET

      6、自定义端点:如果添加用@Endpoint注解@Bean,则任何使用@ReadOperation@WriteOperation@DeleteOperation注释的方法都会自动通过JMX公开,并且也可以通过HTTP在Web应用程序中通过HTTP公开。也可以使用Jersey,Spring MVC或Spring WebFlux通过HTTP公开端点。

      7、端点操作:

        端点上的操作通过参数接收输入,这些参数的值取自URL的查询参数和JSON请求主体。通过JMX公开时,参数将映射到MBean操作的参数。参数默认是必需的,可以通过使用@org.springframework.lang.Nullable注释使其成为可选的。

        传递给端点操作方法的参数在必要时会自动转换为所需的类型。在调用操作方法之前,使用ApplicationConversionService的实例将通过JMX或HTTP请求接收到的输入转换为所需的类型。

  • 相关阅读:
    iOS 将对象的属性和属性值拆分成key、value,通过字符串key来获取该属性的值
    [IOI2005] Riv 河流
    [洛谷P4549] [模板] 裴蜀定理
    [NOIp2013] 货车运输
    [NOIp2015] 运输计划
    18.10.01模拟赛总结
    [洛谷P3369] 普通平衡树 Treap & Splay
    [NOIp2016] 组合数问题
    [洛谷P4777] [模板] 扩展中国剩余定理
    [洛谷P3384] [模板] 树链剖分
  • 原文地址:https://www.cnblogs.com/zqhIndex/p/15407067.html
Copyright © 2020-2023  润新知