Java--SpringBoot-18-执行器Actuator

简介: 今天看一下SpringBoot的执行器-actuator

今天看一下SpringBoot的执行器-actuator。

       SpringBoot Actuaor可以使用HTTP或者JMX endpoints来浏览应用操作信息,可以监控应用程序并与之交互。Spring Boot 包含许多内置端点,也允许添加自己的端点。例如,health端点提供基本的应用程序健康信息。

       添加pom依赖:

<!--https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId><version>2.5.2</version></dependency>

一些常用的内置 endpoints Actuator:

auditevents:查看 audit 事件信息

env:查看 环境变量

health:查看应用程序健康信息

httptrace:展示 HTTP 路径信息

info:展示 arbitrary 应用信息

metrics:展示 metrics 信息

loggers:显示并修改应用程序中日志器的配置

mappings:展示所有 @RequestMapping 路径信息

scheduledtasks:展示应用程序中的定时任务信息

threaddump:执行 Thread Dump

       默认情况下,所有 Web 端点都可以在形式为/actuatorURL的路径下使用/actuator/{id}。并且默认会自动配置所有启用的端点以通过 HTTP 公开。大多数应用程序都使用HTTP,作为endpoint的标识以及使用默认约定/actuator前缀作为 URL路径。例如,health暴露为/actuator/health.

image.png

更改默认/actuator的基本路径:

management.endpoints.web.base-path=/manage

以上application.properties示例将端点 URL 的形式从/actuator/{id}更改为/manage/{id}。例如,URLinfo端点将变为 /manage/info.

启用端点

   默认情况下,启用除shutdown之外的所有端点。

   要配置端点的启用,使用management.endpoint.<id>.enabled属性。以下示例启用shutdown端点:

management.endpoint.shutdown.enabled=truemanagement.endpoint.mappings.enabled=true

我们也可以关掉所有默认然后手动启用:

#关掉所有默认management.endpoints.enabled-by-default=false#单独手动启用management.endpoint.info.enabled=true

可以使用include和exclude属性批量配置:

management.endpoints.jmx.exposure.exclude=management.endpoints.jmx.exposure.include=*management.endpoints.web.exposure.exclude=management.endpoints.web.exposure.include=health#默认只暴露了健康检查端点

假如要通过 HTTP 公开除env和beans端点之外的所有内容:

management.endpoints.web.exposure.include=*management.endpoints.web.exposure.exclude=env,beans

假如要停止通过JMX公开所有端点而仅公开health和info端点:

management.endpoints.jmx.exposure.include=health,info

我觉得上述只配置了JMX的health和info,web应该是不影响的。

无需身份验证即可访问所有执行器端点:

management.endpoints.web.exposure.include=*


配置端点

默认情况下/actuator -发现页面可用。

image.png

如果要禁用 “发现页面”,也就是用/actuator不可访问:

management.endpoints.web.discovery.enabled=false

端点自动缓存对不带任何参数的读取操作的响应。使用cache.time-to-live属性配置端点缓存响应的时间量:

#将beans端点缓存的生存时间设置为10management.endpoint.beans.cache.time-to-live=10s

默认情况下禁用 CORS 支持,设置origins属性后启用:

#以下配置允许GET和POST来自example.com域的调用:management.endpoints.web.cors.allowed-origins=https://example.commanagement.endpoints.web.cors.allowed-methods=GET,POST

自定义管理端点路径,默认是/actuator

management.endpoints.web.base-path=/manage

management.endpoints.web.path-mapping属性将端点映射到不同的路径:

#以下示例重新映射/actuator/health到/healthcheckmanagement.endpoints.web.base-path=/management.endpoints.web.path-mapping.health=healthcheck

自定义管理服务器端口

使用默认 HTTP 端口公开管理端点是基于云的部署的明智选择。

management.server.port属性更改 HTTP 端口:

management.server.port=8081

自定义管理服务器地址

设置management.server.address属性来自定义管理端点可用的地址。如果您只想在内部或面向 ops 的网络上侦听或仅侦听来自localhost.

只有当端口与主服务器端口不同时,您才能侦听不同的地址。

以下示例application.properties不允许远程管理连接:

management.server.port=8081management.server.address=127.0.0.1

禁用 HTTP 端点

#如果不想通过HTTP公开端点,可以将管理端口设置为-1management.server.port=-1#也可以使用management.endpoints.web.exposure.exclude属性来实现,如以下示例所示:management.endpoints.web.exposure.exclude=*



健康信息

可以使用健康信息来检查正在运行的应用程序的状态。当生产系统出现故障时,监控软件通常使用它来发出提醒。

health端点公开的信息取决于可以使用以下值之一配置:

management.endpoint.health.show-details

management.endpoint.health.show-components

image.png

默认值为never。

image.png

management.health.defaults.enabled=true
#编写自定义健康指标#要提供自定义健康信息,您可以注册实现该HealthIndicator接口的Springbean。您需要提供该health()方法的实现并返回Health响应。的Health响应应该包括一个状态,并且可以任选地包括另外的细节被显示。以下代码显示了一个示例HealthIndicator实现:importorg.springframework.boot.actuate.health.Health;
importorg.springframework.boot.actuate.health.HealthIndicator;
importorg.springframework.stereotype.Component;
@ComponentpublicclassMyHealthIndicatorimplementsHealthIndicator {
@OverridepublicHealthhealth() {
interrorCode=check();
if (errorCode!=0) {
returnHealth.down().withDetail("Error Code", errorCode).build();
        }
returnHealth.up().build();
    }
privateintcheck() {
// perform some specific health checkreturn ...
    }
}

不想在指标的输出中包含路由数据源,请设置

management.health.db.ignore-routing-data-sources=true

总结:

       直接上代码吧

#####################actuator配置######################auditevents:查看audit事件信息#env:查看环境变量#health:查看应用程序健康信息#httptrace:展示HTTP路径信息#info:展示arbitrary应用信息#metrics:展示metrics信息#loggers:显示并修改应用程序中日志器的配置#mappings:展示所有@RequestMapping路径信息#scheduledtasks:展示应用程序中的定时任务信息#threaddump:执行ThreadDump#开启全部端点management.endpoints.web.exposure.include=*#禁用HTTP端点#management.server.port=-1#management.endpoints.web.exposure.exclude=*#自定义管理端点路径,默认是/actuatormanagement.endpoints.web.base-path=/actuator#不允许远程管理连接management.server.address=127.0.0.1#端口management.server.port=8081#healthmanagement.endpoint.health.show-components=alwaysmanagement.endpoint.health.show-details=always

image.png




END

目录
相关文章
|
17天前
|
Java 中间件 调度
SpringBoot整合XXL-JOB【03】- 执行器的使用
本文介绍了如何将调度中心与项目结合,通过配置“执行器”实现定时任务控制。首先新建SpringBoot项目并引入依赖,接着配置xxl-job相关参数,如调度中心地址、执行器名称等。然后通过Java代码将执行器注册为Spring Bean,并声明测试方法使用`@XxlJob`注解。最后,在调度中心配置并启动定时任务,验证任务是否按预期执行。通过这些步骤,读者可以掌握Xxl-Job的基本使用,专注于业务逻辑的编写而无需关心定时器本身的实现。
31 10
SpringBoot整合XXL-JOB【03】-  执行器的使用
|
17天前
|
负载均衡 IDE Java
SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略
在本节中,我们将介绍XXL-JOB的GLUE模式和集群模式下的路由策略。GLUE模式允许直接在线上改造方法为定时任务,无需重新部署。通过一个测试方法,展示了如何在调度中心配置并使用GLUE模式执行定时任务。接着,我们探讨了多实例环境下的负载均衡策略,确保任务不会重复执行,并可通过修改路由策略(如轮训)实现任务在多个实例间的均衡分配。最后,总结了GLUE模式和负载均衡策略的应用,帮助读者更深入理解XXL-JOB的使用。
29 9
|
8月前
|
Prometheus 监控 安全
Java一分钟之-Spring Boot Actuator:健康检查与监控
【6月更文挑战第7天】Spring Boot Actuator 提供了丰富的监控和管理端点,如健康检查、性能监控。要启用Actuator,需添加依赖并配置暴露端点。健康检查可自定义,性能监控可通过Metrics结合Micrometer集成外部系统。安全配置很重要,可以使用Spring Security保护端点。日志和环境信息管理则可通过`/loggers`和`/env`端点。正确使用Actuator能提升应用的可观察性和维护性。
676 1
|
SQL 缓存 Java
Java 最常见的面试题:mybatis 有哪些执行器(Executor)?
Java 最常见的面试题:mybatis 有哪些执行器(Executor)?
119 0
|
Java 调度
|
监控 Java API
Java Spring Boot 2.0性能监控实战与Actuator机制解析
Java Spring Boot 2.0 性能监控 实战与 Actuator 机制解析: 内容摘要:应用程序性能监控和日志采集管理是非常重要问题,Java Spring Boot网站、API等应用程序如何进行远程性能监控、日志采集,远程控制,本次课程一起深入学习Actuator新特性与API机制。
4765 0
|
监控 NoSQL Java
【直播预告】:Java Spring Boot开发实战系列课程【第12讲】:Spring Boot 2.0性能监控实战与Actuator机制解析
应用程序性能监控和日志采集管理是非常重要问题,Java Spring Boot网站、API等应用程序如何进行远程性能监控、日志采集,远程控制,本次课程一起深入学习Actuator新特性与API机制。
2753 0
|
监控 Java Spring
SpringBoot学习之SpringBoot执行器
在以往的分布式开发当中,各个服务节点的监控必不可少。监控包含有很多方面,比如说:内存占用情况,节点是否健康等。在spring-boot会给我们提供相关资源监控叫做spring-boot-actuator, 通过执行器可以帮我管理和监控生产环境下的应用服务。
1809 0
|
26天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
85 17