Java 中 Spring Boot 怎么利用内置指标度量库 Micrometer 将系统吞吐数据无缝对接到外部监控看板

冰川箭仙

冰川箭仙

2026-07-25

703人浏览

原创

spring boot 通过 micrometer 实现吞吐监控闭环,即采集—导出—抓取—展示:micrometer 作为指标门面标准化输出 jvm、http 和业务指标,由 prometheus 拉取并在 grafana 展示;需启用 actuator 并暴露 /actuator/prometheus 端点;默认提供 http_server_requests_seconds_count 等 http 吞吐指标;自定义业务吞吐需注入 meterregistry 埋点;prometheus 抓取路径须设为 /actuator/prometheus,grafana 中用 promql 聚合多实例指标并构建 qps、错误率、p95 延迟等看板。

java 中 spring boot 怎么利用内置指标度量库 micrometer 将系统吞吐数据无缝对接到外部监控看板

Spring Boot 通过 Micrometer 将系统吞吐数据对接到外部监控看板,核心在于“采集—导出—抓取—展示”四步闭环。Micrometer 不直接存储或展示数据,而是作为统一指标门面,把 JVM、HTTP、业务等维度的吞吐类指标(如 QPS、请求总数、响应时长分布)标准化输出,再由 Prometheus 等系统拉取,最终在 Grafana 渲染成看板。关键不是写得多,而是配得准、暴露得对、打标得清。

启用 Actuator 并暴露吞吐相关端点

Actuator 是指标出口的载体,必须开启 /actuator/prometheus(或其他目标后端对应端点),否则 Micrometer 的数据无法被外部采集:

  • 添加基础依赖:spring-boot-starter-actuatormicrometer-registry-prometheus(若对接 Prometheus)
  • application.yml 中明确暴露端点:
    management:
      endpoints:
        web:
          exposure:
            include: prometheus,health,metrics
  • 避免开放 *,生产环境只暴露必要端点,防止敏感指标泄露

利用默认 HTTP 吞吐指标快速上手

Spring Boot 自动注册了大量开箱即用的吞吐指标,无需编码即可接入看板:

Java JDK 25
Java JDK 25

Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。

下载
  • http_server_requests_seconds_count:按 method、status、uri 维度统计的请求总数(本质是 Counter)
  • http_server_requests_seconds_sum_count 配合可算出平均响应时间
  • http_server_requests_seconds_bucket 提供响应时间分位数(P90/P95/P99),用于绘制延迟热力图
  • Prometheus 抓取 /actuator/prometheus 后,这些指标自动可用;Grafana 中直接用 PromQL 查询,例如:
    rate(http_server_requests_seconds_count{application="myapp"}[1m]) 得到每秒请求数(QPS)

注入 MeterRegistry 实现自定义吞吐埋点

业务级吞吐(如订单创建量、消息处理速率)需手动埋点,推荐使用 MeterRegistry 注入方式,而非静态工具类:

  • 在 Service 或 Controller 中注入:
    @Resource private MeterRegistry meterRegistry;
  • 定义计数器记录吞吐事件:
    Counter orderCreatedCounter = Counter.builder("order.created.total")
      .tag("env", "prod")
      .register(meterRegistry);
    orderCreatedCounter.increment();
  • 若需带耗时统计,优先用 Timer:
    Timer.builder("order.process.duration")
      .publishPercentiles(0.95, 0.99)
      .register(meterRegistry)
      .record(() -> processOrder());
  • 所有自定义指标会自动带上 application 标签(建议在配置中统一设置 management.metrics.tags.application=${spring.application.name}

Prometheus 抓取配置与 Grafana 可视化要点

数据能采集到,不等于能在看板里直观呈现。需注意三处衔接细节:

  • Prometheus scrape_configs 中,metrics_path 必须设为 /actuator/prometheus(非 /prometheus),且 target 地址需含正确端口(如 localhost:8080
  • Grafana 添加 Prometheus 数据源后,新建面板时,PromQL 应聚合多实例指标,例如:
    sum by (uri) (rate(http_server_requests_seconds_count{job="myapp"}[2m])) 展示各接口实时 QPS
  • 吞吐类看板建议包含:总 QPS 趋势图、TOP N 接口 QPS 排名、错误率(rate(http_server_requests_seconds_count{status=~"5.."}[1m]) / rate(http_server_requests_seconds_count[1m]))、P95 响应时间曲线

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

3864

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

2839

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

2876

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

637

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

602

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

726

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1317

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

18845

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

647

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Spring中文手册
Spring中文手册

共0课时 | 0.6万人学习

马士兵spring视频教程
马士兵spring视频教程

共25课时 | 9.7万人学习