北京国税局网站做票种核定时,呼叫中心系统厂家排名,惠州建设银行行号查询网站,做一个公司网站大概要多少钱一、前言 Spring Boot Actuator是Spring Boot提供的一个模块#xff0c;用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点#xff08;endpoints#xff09;#xff0c;用于获取应用程序的健康状态、性能指标、配置信息等#xff0c;并支持通过 HTTP …一、前言 Spring Boot Actuator是Spring Boot提供的一个模块用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点endpoints用于获取应用程序的健康状态、性能指标、配置信息等并支持通过 HTTP 或 JMX 进行访问。 使用 Actuator 可以方便地了解应用程序的运行状况监控等关键指标并根据需要采取相应的措施。它为开发人员和运维人员提供了一种简单而有效的方式来监控和管理Spring Boot应用程序。例如在项目中监控记录接口请求的相关信息它对于提升系统稳定性、优化性能、快速定位问题以及保障数据安全等方面都起着至关重要的作用。 本文将介绍一下Spring Boot Actuator以及代码示例以及如何进行接口请求监控。
二、Spring Boot Actuator主要特性和功能 1. 健康检查Health Checks通过 /actuator/health 端点暴露应用程序的健康状态。这可以包括数据库连接、外部服务可达性等多种健康指标。支持自定义健康检查指标。 ①. 配置健康检查的详细程度通过 management.endpoint.health.show-details 属性。可配置的值有 never默认不显示详细信息、when-authorized详细信息将展示给通过认证的用户和 always对所有用户暴露详细信息。 ②. 可以通过 management.health.defaults.enabled 或针对特定组件的 management.health.xxxx.enabled 配置项来启用或禁用默认的健康指示器。 2. 信息端点通过 /actuator/info 端点展示应用程序的自定义信息如版本号、构建信息等。允许在 application.properties 或 application.yml 文件中配置这些信息。 3. 度量指标Metrics提供应用程序的度量指标如 JVM 内存使用情况、系统 CPU 负载、HTTP 请求统计等。可以通过 /actuator/metrics 端点获取度量指标信息。 4. 日志管理Logging Management通过 /actuator/loggers 端点动态调整日志级别。允许在运行时查看和修改日志配置而无需重启应用程序。 5. 环境属性Environment Properties通过 /actuator/env 端点展示配置的属性来源如系统属性、环境变量、配置文件等。 6. 线程转储Thread Dump通过 /actuator/threaddump 端点生成当前线程的转储快照有助于诊断性能问题或死锁情况。 7. HTTP 跟踪HTTP Trace通过 /actuator/httptrace 端点展示最近的 HTTP 请求和响应的跟踪信息有助于分析请求处理流程。 8. 审计事件Audit Events通过 /actuator/auditevents 端点访问应用程序的审计事件如安全事件。 9. JMX Beans除了 HTTP 端点外Actuator 还提供了 JMX Beans允许通过 JMX 控制台来访问和管理应用程序。 10. 关机和重启Shutdown and Restart在某些配置下可以通过 /actuator/shutdown 或 /actuator/restart 端点来安全地关闭或重启应用程序。但请注意这些功能通常不推荐在生产环境中使用因为它们可能带来安全风险。 11. 自定义端点Custom Endpoints允许开发者创建自定义的 Actuator 端点以扩展监控和管理功能。
三、Actuator监控分类
Actuator 监控分成两类原生端点和用户自定义端点 ①. 自定义端点主要是指扩展性用户可以根据自己的实际应用定义一些比较关心的指标在运行期进行监控。 ②. 原生端点是在应用程序里提供众多Web接口通过它们了解应用程序运行时的内部状况。
原生端点又可以分成三类 ①. 应用配置类 可以查看应用在运行期的静态信息例如自动配置信息、加载的 springbean 信息、yml 文件配置信息、环境信息、请求映射信息。 ②. 度量指标类 主要是运行期的动态信息例如堆栈、请求连、一些健康指标、metrics 信息等。 ③. 操作控制类 主要是指 shutdown,用户可以发送一个请求将应用的监控功能关闭。
Actuator 提供了13 个接口具体如下表所示 四、代码示例
1. 引入依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId
/dependency2. 添加application.properties配置
打开所有的监控点
management.endpoints.web.exposure.include*3. 定义一些请求接口
GetMapping(/v1/test)public Object Test1() {String name hello;return name;}// 异常情况下GetMapping(/v2/test2)public Object Test2() {String name hello new;System.out.println(1 / 0) ;return name;}4. 浏览器访问
访问http://localhost:8027/actuator ①查看项目运行情况通过访问 /actuator/health health 主要用来检查应用的运行状态这是我们使用最高频的一个监控点。通常使用此接口提醒我们应用实例的运行状态以及应用不”健康“的原因比如数据库连接、磁盘空间不够等。 ②.查看日志级别情况 比如我们生产环境日志级别一般都是 info但是现在有一个bug通过info级别无法排查那么我们就可以临时修改 log 级别。 五、http接口监控
要使用Actuator的http接口监控功能需要注册一个HttpTraceRepository类型的Bean
package com.example.yddemo.actuator;import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;Configuration
public class HttpActuatorConfig {BeanInMemoryHttpTraceRepository inMemoryHttpTraceRepository() {return new InMemoryHttpTraceRepository() ;}}
添加application.properties配置
management.endpoints.web.exposure.includehttptrace访问http://localhost:8027/actuator 出现下面链接表示配置成功 4. 访问http://localhost:8027/actuator/httptrace
请求一些上面我们定义的接口然后访问/actuator/httptrace展示如下信息
列如timeTaken属性记录的是该接口请求的耗时情况单位毫秒
自定义记录的信息可以通过如下配置
访问/actuator/httptrace展示的信息也可以自定义展示需要的信息。
management.trace.http.include六、安全管理
1.在application.properties禁用接口
management.endpoint.health.enabledfalse2. 配置访问权限验证这时再访问actuator功能时就会弹出登录窗口需要输入账号密码验证后才允许访问。例如Spring Securityshiro等
3. 使用Filter对访问actuator做限制 以上就是对SpringBoot中Actuator的介绍以及代码示例了解了如何查看健康检查如何使用Actuator来实现对Http接口进行监控。