千家信息网

跟我学Spring Cloud(Finchley版)-03-监控:强大的Boot Actuator

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,第2节( 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 )说过:应用没有监控,没有画板,一切指标都没有。在这个Growth Hack逐渐成为主流的时代,不弄个Dashbo
千家信息网最后更新 2026年11月02日跟我学Spring Cloud(Finchley版)-03-监控:强大的Boot Actuator

第2节( 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 )说过:

应用没有监控,没有画板,一切指标都没有。在这个Growth Hack逐渐成为主流的时代,不弄个Dashboard把系统压力、QPS、CPU、内存、日活啥的可视化,你好意思出来混吗……

本节我们来解决该问题。

Spring Boot Actuator是Spring Boot官方提供的监控组件。只需为项目添加以下依赖,即可就整合Spring Boot Actuator。

  org.springframework.boot  spring-boot-starter-actuator

监控端点

Actuator为我们提供了很多监控端点,如下表所示。

端点(Spring Boot 2.x)描述HTTP方法是否敏感端点(Spring Boot 1.x)
conditions显示自动配置的信息GET是autoconfig
beans显示应用程序上下文所有的Spring beanGET是beans
configprops显示所有@ConfigurationProperties的配置属性列表GET是configprops
dump显示线程活动的快照GET是dump
env显示环境变量,包括系统环境变量以及应用环境变量GET是env
health显示应用程序的健康指标,值由HealthIndicator的实现类提供;结果有UP、 DOWN、OUT_OF_SERVICE、UNKNOWN;如需查看详情,需配置:management.endpoint.health.show-detailsGET否health
info显示应用的信息,可使用info.* 属性自定义info端点公开的数据GET否info
mappings显示所有的URL路径GET是mappings
metrics显示应用的度量标准信息GET是metrics

表-Spring Boot Actuator常用端点及描述

只需访问http://{ip}:{port}/actuator/{endpoint} 端点,即可监控应用的运行状况。

测试1:/health端点

为前文编写的microservice-simple-provider-user 服务整合Actuator后,我们来做一些测试:

访问 ,即可获得如下结果:

{"status":"UP"}

测试2:/health端点展示详情

为/health 端点配置显示详情:

management:  endpoint:    health:      # 是否展示健康检查详情      show-details: always

再次访问 ,即可获得如下结果:

{    "status": "UP",    "details": {        "db": {            "status": "UP",            "details": {                "database": "H2",                "hello": 1            }        },        "diskSpace": {            "status": "UP",            "details": {                "total": 250790436864,                "free": 43443773440,                "threshold": 10485760            }        }    }}

从中可以看到,/health 端点展示了DB的健康情况以及磁盘的健康情况。

测试3:暴露敏感路径

默认情况下,敏感路径并不暴露。如需暴露(以metrics为例),需添加配置:

management:  endpoints:    web:      exposure:        # 暴露metrics端点,如需暴露多个,用,分隔;如需暴露所有端点,用'*'        include: metrics

访问: ,可获得类似如下的结果:

{    "names": ["jvm.memory.max", "http.server.requests", "jdbc.connections.active", "process.files.max", "jvm.gc.memory.promoted", "tomcat.cache.hit", "system.load.average.1m", "tomcat.cache.access", "jvm.memory.used", "jvm.gc.max.data.size", "jdbc.connections.max", "jdbc.connections.min", "jvm.gc.pause", "jvm.memory.committed", "system.cpu.count", "logback.events", "tomcat.global.sent", "jvm.buffer.memory.used", "tomcat.sessions.created", "jvm.threads.daemon", "system.cpu.usage", "jvm.gc.memory.allocated", "tomcat.global.request.max", "hikaricp.connections.idle", "hikaricp.connections.pending", "tomcat.global.request", "tomcat.sessions.expired", "hikaricp.connections", "jvm.threads.live", "jvm.threads.peak", "tomcat.global.received", "hikaricp.connections.active", "hikaricp.connections.creation", "process.uptime", "tomcat.sessions.rejected", "process.cpu.usage", "tomcat.threads.config.max", "jvm.classes.loaded", "hikaricp.connections.max", "hikaricp.connections.min", "jvm.classes.unloaded", "tomcat.global.error", "tomcat.sessions.active.current", "tomcat.sessions.alive.max", "jvm.gc.live.data.size", "tomcat.servlet.request.max", "hikaricp.connections.usage", "tomcat.threads.current", "tomcat.servlet.request", "hikaricp.connections.timeout", "process.files.open", "jvm.buffer.count", "jvm.buffer.total.capacity", "tomcat.sessions.active.max", "hikaricp.connections.acquire", "tomcat.threads.busy", "process.start.time", "tomcat.servlet.error"]}

访问http://localhost:8000/actuator/metrics/{name} ,{name} 列表如上,即可查看当前应用的度量指标。例如访问: 即可查看JVM可管理的最大内存,结果类似如下:

{    "name": "jvm.memory.max",    "description": "The maximum amount of memory in bytes that can be used for memory management",    "baseUnit": "bytes",    "measurements": [{        "statistic": "VALUE",        "value": 5.597298687E9    }],    "availableTags": [{        "tag": "area",        "values": ["heap", "nonheap"]    }, {        "tag": "id",        "values": ["Compressed Class Space", "PS Survivor Space", "PS Old Gen", "Metaspace", "PS Eden Space", "Code Cache"]    }]}

TIPS

  • 如需暴露所有监控端点可配置:

    management:endpoints:  web:    exposure:      include: '*'
  • 有关Spring Boot 1.x与2.x端点的差异,详见:

拓展阅读

如果能对Actuator端点的文字数据进行图形化的展示,我们就可以实现比较低层次的"Growth Hack"啦!开源界已经有这样的工具--Spring Boot Admin ,界面如下。有兴趣的可前往了解。

说明

  • 由于Actuator本身是Spring Boot中的组件,并不是本套教程的重点(其实笔者本不想写这一节,但后面又会持续用这些端点,并且Spring Cloud在这些端点的基础上还做了一些增加,所以还是有必要介绍一下),因此本节只是对Actuator进行了比较简单的介绍,读者可自行挖掘Actuator的其他能力。也可持续关注本公众号,本系列完成后,笔者将会扒开Actuator的底裤,深度介绍Spring Boot监控的那些事儿。

配套代码

GitHub:

  • https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-provider-user
  • https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-consumer-movie

Gitee:

  • https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-provider-user
  • https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-consumer-movie

原文:http://www.itmuch.com/spring-cloud/finchley-3/ ,转载请说明出处。

干货分享

端点 应用 监控 配置 结果 健康 详情 测试 信息 变量 情况 指标 环境 路径 内存 只需 属性 应用程序 数据 程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司税收优惠 高科技与互联网 互联网金融公司科技 广州宏创互联网科技 智慧科技互联网 小米互联网科技园设置 昭通云南众福互联网科技有限公司 互联网时代科技改变生活 互联网科技产业特征 未来五年的互联网科技 科技赋能视角下互联网保险发展 互联网时代的科技公司 元气玛特互联网科技公司是外包吗 工业互联网科技创业 南京一网一红互联网科技有限公司 云鲸互联网络科技有限公司 保山互联网科技靠谱吗 恒生互联网科技趋势 互联网科技创业有什么好项目 广州全民伙伴互联网科技有限公司 精品咖啡豆 丰台科技园 互联网 居家互联网科技有限公司 互联网汽车科技小镇 互联网科技产业特征 移动互联网年度科技创新 富国互联网金融科技混合基金 本届互联网大会上的黑科技 广州三三互联网科技有限公司 互联网科技创新创业项目
0