• 框架——容器框架——spring_boot——actuator


    actuator是一些用于管理,监控项目的工具,产生的内容由于是JSON串,在实际中基本用不到。

    引用原著定义:

    Additional features to help you monitor and manage your application when you push it to production

    它的知识点分为四部分。

    第一部分,搭建环境,即引入actuator的jar包。

    第二部分,使用 & 配置actuator。

    第三部分,原理,查看actuator是如何实现的。

    第四部分,实现自定义actuator,略。

    1、搭建环境

     第一步,引入spring-boot-starter-actuator依赖

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

      第二步,启用actuator,默认是禁止的。

    # 开启所有
    management.endpoint.enabled-by-default=true。
    # 开启某个
    management.endpoint.<id>.enabled=true
    

      第三步,验证,启动项目,访问actuator/{id},例如actuator/beans

      

    2、配置

    2.1   安全

    略。原著中使用spring-security设置请求url需要的角色。

    2.2  缓存

    配置management.endpoint.<id>.cache.time-to-live,它的值为请求的缓存时间。

    示例:management.endpoint.beans.cache.time-to-live=10s

    2.3  跨域

    跨域的配置与CrosFilter的属性基本是相同的。命名空间为management.endpoints.web.cors,具体配置项如下:

    1. allow-origins, allow-origins-patterns:允许的域名或相关的正则表达式。
    2. allow-methods:允许的请求方式,GET,POST等等。
    3. allow-credentials:是否需要证书。
    4. allow-headers,exposed-headers:自定义请求头部和响应头部中携带的信息。
    5. max-age:在pre-flight模式下,在跨域请求时,会预先请求一次,它用于设置预先请求的失效时间。默认为1800s。

    2.4  参数 & url

    参数:从请求url地址中的query parameter或者是请求消息体中的json。复杂对象无法转换。否则需要添加@EndpointConverter。

    请求url:management.endpoints.web.base-path,默认值为/actuator。

    2.5   服务器

    命名空间为management.server。配置项如下:

    port:端口号。配置为-1, 禁用actuator功能。

    address:IP地址,默认为localhost。

    ssl.XX:配置ssl相关的功能。

    3、原理

    其他都是类似的,这里只介绍了Health。

    3.1.  信息类

    3.1.1   health

    通过HealthContributorRegistry收集各类health信息,每种类型实现XXHealthIndicator接口,它的health()方法返回类型为Health对象。

    spring内置了很多HealthIndicator,参考官网

    配置项:命名空间为management.endpoint.health。

    show-components:是否显示组件名称,never从不,when-authorized需要认证,always总是。默认值never

    show-details:是否显示细节,never, when-authorized, always。默认值never。

    enabled:启动/禁用

    probes.enabled:是否启用探针。

    roles:所需要的角色名称,为spring security中存在的角色。

    status.order:返回的类型,up(正常),DOWN(无法启动),fatal(严重错误),UNKNOW(未知),out-of-service(无服务)。

    status.http-mapping:发生上诉情况时,返回的状态码,例如status.http-mapping.fatal=503。

      示例如下:

      

    3.1.2  info

    与health类似,区别在于收集的是InfoContributor。spring内置了三种实现类。

    Environment:需要在配置文件中存在info.xx,例如info.key=value。注:需要加载application.properties,在application.yaml存在时不生效。

    Git:classpath路径下存在git.properties时,生效。

    Build:classpath路径下存在META-INF/build-info.properties时,生效。

    自定义:实现InfoContributor接口,并注入实现类。

    3.1.3   beans

    显示spring中所有注入的beans。

    3.1.4   conditions

    显示所有的@conditionXX注解。

    3.1.5  configprops

    显示所有@ConfigurationProperties中的配置项。

    3.1.6  env

    显示系统所有的配置项。

    3.2   功能类

    Metrics, audit, http tracing, processing monitoring不常用,略。

    3.2.1  日志

    获取所有日志级别信息,/actuator/logger。可以POST请求,发送到某个具体的类下,参数为{“configuredLevel”:”INFO || DEBUG等”}

    3.3   性能

    3.3.1   heapdump

    生成heapdump文件。

    3.3.2   threaddump

    返回线程快照。示例如下:

  • 相关阅读:
    ASP.NET页面生命周期总结(完结篇)
    ASP.NET页面生命周期总结(2)
    ASP.NET页面生命周期总结(1)
    springboot-简介
    python-day2
    python-day1
    jsoup解析页面
    httpclient模拟浏览器
    httpclient
    变量名和函数名重复的话
  • 原文地址:https://www.cnblogs.com/rain144576/p/16212761.html
Copyright © 2020-2023  润新知