当前位置: 首页 > news >正文

完整教程:【SpringBoot】33 核心功能 - 指标监控- 指标监控:Spring Boot Actuator 详解

文章目录

        • 前言
        • 1. Spring Boot Actuator 简介
        • 2. Spring Boot Actuator 1.x 与 2.x 的主要区别
        • 3. 如何使用 Spring Boot Actuator
          • 3.1 引入场景
          • 3.2 访问端点
          • 3.3 配置示例
        • 4. 实际应用场景
        • 5. 完整应用案例:使用 Spring Boot Actuator 实现健康检查与指标监控
          • 5.1 环境准备
          • 5.2 创建 Spring Boot 项目
          • 5.3 配置 Actuator 端点
          • 5.4 添加自定义业务接口(用于模拟指标)
          • 5.5 启动应用
          • 5.6 调用与验证
          • 5.7 集成 Prometheus(可选扩展)
        • 总结


前言

在现代微服务架构中,每一个部署到云上的服务都需要进行有效的监控、追踪、审计和控制。为了简化这一过程,Spring Boot 提供了一个强大的工具——Spring Boot Actuator。它通过抽象出常见的运维场景,使得开发者能够快速构建具备生产级别功能的应用程序,如健康检查、性能监控、日志管理等。


1. Spring Boot Actuator 简介

Spring Boot Actuator 是 Spring Boot 提供的一个核心模块,用于帮助开发者监控和管理应用程序的运行状态。它内置了多种端点(endpoints),可以暴露应用的健康状况、指标数据、配置信息等,从而实现对应用的全面监控。

要使用 Actuator,只需在项目中引入以下依赖:

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

该依赖会自动引入 spring-boot-actuator-autoconfiguremicrometer-core 等组件,其中 Micrometer 是一个现代化的指标收集库,支持多种监控系统(如 Prometheus、Graphite、InfluxDB 等)。


2. Spring Boot Actuator 1.x 与 2.x 的主要区别

随着 Spring Boot 版本的演进,Actuator 也经历了重大升级。以下是 1.x 与 2.x 版本之间的关键差异:

特性Spring Boot Actuator 1.xSpring Boot Actuator 2.x
支持的 Web 框架仅支持 Spring MVC支持 Spring MVC、JAX-RS、WebFlux
扩展机制基于继承方式扩展基于注解驱动方式扩展
Metrics 配置层级式 Metrics 配置层级 & 名称空间 Metrics
Metrics 收集自定义 Metrics 收集底层使用 Micrometer,更强大、便捷
安全策略默认安全策略较少默认提供丰富的安全策略

这些改进使得 Actuator 2.x 更加灵活、可扩展,并且更好地适应了现代微服务架构的需求。


3. 如何使用 Spring Boot Actuator
3.1 引入场景
  • 健康检查:查看应用是否正常运行。
  • 性能监控:获取内存、CPU、线程等资源使用情况。
  • 日志管理:动态调整日志级别。
  • 配置信息:查看当前应用的配置参数。
3.2 访问端点

启动应用后,可以通过 HTTP 请求访问 Actuator 提供的端点。例如:

http://localhost:8080/actuator/health

该接口返回应用的健康状态,如 UPDOWN

3.3 配置示例

为了让所有监控端点对外暴露,可以在 application.ymlapplication.properties 中进行如下配置:

management:
endpoints:
web:
exposure:
include: "*"

或者在 Java 配置中:

@Configuration
public class ActuatorConfig {
@Bean
public EndpointFilter endpointFilter() {
return new SimpleEndpointFilter();
}
}

此外,也可以通过以下配置开启默认端点暴露:

management:
endpoints:
web:
exposure:
include: health,info,metrics

这样就可以通过浏览器或 API 工具访问相应的监控信息。


4. 实际应用场景
  • 运维团队:通过 /actuator/health 快速判断服务是否可用。
  • 开发人员:利用 /actuator/info 查看应用版本、构建时间等元数据。
  • DevOps 团队:集成 Prometheus + Grafana,实时可视化监控指标。
  • 安全团队:通过 /actuator/env 查看环境变量,确保敏感信息未泄露。

当然可以。以下是插入在第 4 节“实际应用场景”和第 5 节“总结”之间的 第 5 节(原为第 4.5 节):完整应用案例,包含从项目搭建、配置、代码实现到调用验证的完整步骤。


5. 完整应用案例:使用 Spring Boot Actuator 实现健康检查与指标监控

为了更直观地理解 Spring Boot Actuator 的使用方式,下面我们将通过一个完整的示例,演示如何在 Spring Boot 项目中集成 Actuator,并暴露健康检查、自定义指标和动态日志控制功能。

5.1 环境准备
  • JDK 17+
  • Spring Boot 3.x(兼容 Actuator 3.x,底层基于 Micrometer 1.10+)
  • Maven 或 Gradle 构建工具
  • IDE(如 IntelliJ IDEA)
5.2 创建 Spring Boot 项目

使用 Spring Initializr 创建项目,选择以下依赖:

或手动在 pom.xml 中添加:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
</dependencies>
5.3 配置 Actuator 端点

src/main/resources/application.yml 中添加如下配置:

server:
port: 8080
management:
endpoints:
web:
exposure:
include: "*"  # 暴露所有端点(生产环境建议按需暴露)
endpoint:
health:
show-details: always
loggers:
enabled: true
metrics:
tags:
application: ${spring.application.name:actuator-demo}
5.4 添加自定义业务接口(用于模拟指标)

创建一个简单的控制器,用于触发业务逻辑并记录自定义指标:

// src/main/java/com/example/actuatordemo/controller/DemoController.java
package com.example.actuatordemo.controller;
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoController {
private final Counter requestCounter;
public DemoController(MeterRegistry meterRegistry) {
this.requestCounter = Counter.builder("demo.http.requests.total")
.description("Total number of demo requests")
.register(meterRegistry);
}
@GetMapping("/hello")
public String hello() {
requestCounter.increment();
return "Hello from Actuator Demo!";
}
}
5.5 启动应用

运行主类:

// src/main/java/com/example/actuatordemo/ActuatorDemoApplication.java
package com.example.actuatordemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ActuatorDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ActuatorDemoApplication.class, args);
}
}

启动后,控制台应显示:

Tomcat started on port(s): 8080 (http)
5.6 调用与验证

现在可以通过以下方式验证 Actuator 功能:

  1. 健康检查

    curl http://localhost:8080/actuator/health

    响应示例:

    {
    "status": "UP",
    "components": {
    "diskSpace": { "status": "UP", ... },
    "ping": { "status": "UP" }
    }
    }
  2. 查看自定义指标
    先访问业务接口几次:

    curl http://localhost:8080/hello
    curl http://localhost:8080/hello

    然后查看指标:

    curl http://localhost:8080/actuator/metrics/demo.http.requests.total

    响应将包含计数值(如 measurements: [{value: 2.0}])。

  3. 动态调整日志级别
    查看当前日志级别:

    curl http://localhost:8080/actuator/loggers/com.example

    设置为 DEBUG:

    curl -X POST http://localhost:8080/actuator/loggers/com.example \
    -H "Content-Type: application/json" \
    -d '{"configuredLevel": "DEBUG"}'
  4. 查看所有可用端点

    curl http://localhost:8080/actuator
5.7 集成 Prometheus(可选扩展)

若需对接 Prometheus,只需添加依赖:

<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

然后访问 http://localhost:8080/actuator/prometheus 即可获取 Prometheus 格式的指标数据。

通过以上步骤,我们构建了一个具备完整监控能力的 Spring Boot 应用。该案例展示了如何快速启用 Actuator、暴露关键端点、收集自定义业务指标,并通过 HTTP 接口进行运维操作,为后续集成 Grafana、Prometheus 或 Kubernetes 健康探针打下基础。

提示:在生产环境中,建议通过 Spring Security 限制 /actuator 端点的访问权限,避免敏感信息泄露。


总结

Spring Boot Actuator 是构建现代化微服务不可或缺的一部分。它不仅简化了应用的监控与管理流程,还提供了高度可定制化的功能。从 1.x 到 2.x 的演进,体现了 Spring 社区对开发者体验的持续优化。结合 Micrometer 的强大能力,Actuator 能够轻松对接主流监控平台,为企业的可观测性建设提供坚实基础。

无论是小型项目还是大型分布式系统,合理使用 Spring Boot Actuator 都能显著提升系统的稳定性与可维护性。建议在每个微服务中都集成 Actuator,并根据实际需求配置合适的端点暴露策略,以实现高效、安全的运维管理。

http://www.jsqmd.com/news/78002/

相关文章:

  • 2025年五大高性价比的手表工厂排行榜,新测评精选手表厂家推 - myqiye
  • 2025 年知识库部署服务商全攻略:AI 知识库部署方案商企业私有化部署服务通俗指南与能力测评 - 品牌2026
  • 排名前10的AI文献综述工具,选对了效率翻倍! - 百誉集团
  • 出海企业如何实现合规高效全球雇佣?Safeguard Global名义雇主EOR提供一站式解决方案 - 品牌2025
  • 2025 年 12 月江苏压铸厂家权威推荐榜:铝合金压铸件、锌合金压铸件,精密工艺与稳定交付实力解析 - 品牌企业推荐师(官方)
  • 2025年湖南防静电地坪材料与水性环氧地坪材料公司推荐 - myqiye
  • 2025年稳压器制造商权威推荐榜单:家用稳压器/电梯稳压器/机床稳压器源头厂家精选 - 品牌推荐官
  • 出海企业必看:2025 海外人力资源公司选择指南,国际 EOR 服务商优势分析 - 品牌2025
  • zz llamaindex和langchain使用对比
  • 专业沙特阿拉伯名义雇主EOR服务商推荐:Safeguard Global助力企业合规高效开拓中东市场 - 品牌2025
  • python中CSV模块详解
  • 2025年度五大郑州充电桩品牌排行榜,便易充实力如何? - mypinpai
  • 2025 年企业智能 BI 私有化部署厂商推荐 :BI 私有化方案商、本地私有化厂商如何助力企业重构数据决策体系 - 品牌2026
  • 2025年江苏点茶研学机构权威推荐榜单:江苏抹茶研学公司/江苏点茶流程/江苏点茶技艺研学机构精选 - 品牌推荐官
  • 2025年沙子烘干机生产厂家推荐榜单:烘干机‌/污泥烘干机‌/滚筒烘干机源头厂家精选 - 品牌推荐官
  • Lottie动画技术实战手册:从AE设计到Web部署全流程
  • Open-AutoGLM 上手:开源的手机操作智能体
  • Visual C++运行库缺失问题全面解决方案
  • SAP-MM采购申请批导程序-BAPI_PR_CREATE
  • 2025年湖南口碑好的金刚砂材料正规公司排行榜,值得推荐的金 - myqiye
  • 2025陕西优质短视频拍摄公司TOP5权威推荐:本地企业获客 - 工业品牌热点
  • 办公室下午茶小包装零食推荐:我工位抽屉里那套“更轻负担”的 Fixbody 清单 - AIEO
  • 2025比较好的手表OEM生产厂家TOP5测评:甄选优质伙伴 - 工业推荐榜
  • 汽车测试技术解析:小型高低温试验箱在多场景下的应用与优势
  • 筑牢工业信息安全防线:全栈国产化如何为关键行业构建“免疫系统”
  • 15分钟构建JRE版本兼容性测试工具
  • 2025不容错过!山东十大阿胶生产厂家实力解析,膏方类产品/阿胶类/阿胶/阿胶产品/阿胶类产品/阿胶糕/非遗膏方/膏方阿胶采购有哪些 - 品牌推荐师
  • CodeQwen1.5微服务开发实战:从架构设计到部署上线的完整指南
  • 如何用AI快速定位和解决Spring启动异常
  • 一站式网络安全学习路线:零基础入门到精通全程详解