尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
《SpringBoot 3:入门与应用实战》第 15 章 生产级特性 使用监控体系 阅读笔记
《SpringBoot 3入门与应用实战》第 15 章 生产级特性 使用监控体系 阅读笔记一 参考资料二 笔记总结15.5 使用监控体系Spring Boot Admin 的核心作用是管理和简单监控 Spring Boot 应用的状态所以其最大的局限性就是只能监控 Spring Boot 应用在真实的项目开发和生产环境中我们更希望使用专业的监控体系来全方位监控我们开发的系统。本章的最后我们就来介绍当下比较成熟且流行的监控体系PrometheusGrafana。15.5.1 监控系统 PrometheusPrometheus 是一个成熟的主流的监控预警系统同时 Prometheus 还是一个时间序列数据库​所谓时序数据库是指数据库中的所有数据都带有“时刻”的概念即一条数据的保存时间天然集成到数据本身。由于监控数据中包含时刻信息因此 Prometheus 可以完成指定时间区间的监控指标数据趋势统计。Prometheus主要具备以下特点独特的多维数据模型其中包含由指标名称和键值对标识的时间序列数据。专用的指标查询语言 PromQL这种查询语言可以进行指标数据的灵活查询。Prometheus 不依赖分布式存储自身就是时序数据库不需要额外安装第三方数据库。Prometheus 默认使用 HTTP通过 pull拉模式采集时间序列。Prometheus 可以借助服务注册与发现机制动态发现需要监控的目标可以用来监控 K8S 集群。支持整合多种可视化平台例如下面要介绍的 Grafana下面我们简单快速地安装 Prometheus利用 1Panel 可以在 Linux 服务器中快速安装 Prometheus。1Panel 安装 Prometheus 教程15.5.2 Actuator 输出到 Prometheus接下来我们需要给 Spring Boot 应用引入 Prometheus 的支持由于默认情况下 Actuator 返回的都是 JSON 格式的数据而 Prometheus 需要接收 key-value 形式的数据因此需要导入一个 Micrometer 适配 Prometheus 的依赖。当整合该依赖后重启应用再次访问 /actuator 接口可以发现多了一个 /actuator/prometheus 端点我们访问这个端点可以得到一组非常多的指标数据粗略概括一下可以发现Prometheus 需要的指标格式为指标名称{限制条件}指标值。随后再找到 Prometheus 的配置文件在 scrape_configs 节点中添加当前 Spring Boot 应用的监控端点即可。为了验证监控指标是否收集到 Prometheus我们可以切换到 Query 页面输入 tomcat_sessions_active_current_sessions 指标名称并单击右侧的 “Execute” 按钮可以发现下方的 Table 选项卡中展示了当前嵌入式 Tomcat 中的会话数量为0随后再输入 process_cpu_usage 指标名称并点击 “Execute” 按钮可以发现这次获得的值是一个浮点数切换到 Graph 选项卡可以得到一个当前主机 CPU 使用占比的折线图。15.5.3 可视化监控平台 Grafana虽然 Prometheus 可以完成指标数据的展示但是这种需要输入指标名称来获取数据值的方式未免有些复杂和烦琐我们更希望通过一个可视化平台来直观地查看尽可能多的监控指标数据。Grafana 是一个开源的数据可视化平台通过 Grafana 接入 Prometheus 就可以更好地展示监控指标数据的具体值和变动趋势。安装 Grafana 同样可以使用 1Panel。1Panel 安装 Grafana 教程默认的登录用户名和密码均为admin第一次使用admin登录后Grafana会推荐更改密码简单修改后提交即可进入Grafana的主页面。Grafana 只是一个数据可视化平台而数据源来自 Prometheus所以接下来我们要把 Prometheus 配置到 Grafana 中。接下来要根据 Prometheus 中已经收集的监控指标数据来绘制可视化仪表盘 (Dashboard)。如果我们对这些指标完全掌控那么可以尝试自行绘制但即便如此绘制的过程也很烦琐因此可以使用 Grafana 的 Dashboard 市场中现有的成品直接导入。可以直观地看出当前监控的Spring Boot应用已经运行的时间、内存占用情况、CPU运行情况、JVM堆内存情况等。细心的读者可能会发现监控面板中左上角的 Application 值为 None这其实是指代当前监控 Spring Boot 的名称我们只需要在application.yml 中添加一个配置management.metrics.tags.applicationmonitoring-demo。配置完毕后重新启动工程等待大约 15 秒后刷新 Grafana 面板可以发现刚才配置的 Spring Boot 名称成功显示到 Application 中。15.5.4 利用 Grafana 实现监控告警Prometheus 和 Grafana 都内置了监控告警的功能。Prometheus 自带的 Alertmanager 组件可以实现监控告警不过使用 Alertmanager 需要了解告警规则的编写相对而言操作复杂度会高一些Grafana 自带的监控功能支持可视化配置告警规则上手难度相对低也更容易理解。初次添加后该监控规则的判定结果为 Normal代表当前状态正常无须告警。告警状态变为 Pending意为不确定当前是否应该告警这个状态下会遵循我们配置的最大等待时间如果在等待后判定结果仍然符合告警规则则告警状态会变为 Firing代表已经推送告警信息。15.6 小结Spring Boot 能快速流行和被广泛使用完备和高可扩展性的监控体系是非常有分量的筹码之一。作为 Spring Boot 中整合生产级监控指标管理的场景启动器Spring Boot Actuator 默认提供了非常多的监控端点和监控指标且大部分支持HTTP和 JMX 协议的访问不过出于对安全的考虑Spring Boot Actuator 默认禁用了绝大部分 HTTP 端点我们在实际项目上线时需要做好HTTP 监控端点的防护后再开启。通过 HTTP 访问监控端点配合 Spring Boot Admin 可以更好地管理和浏览 Spring Boot 应用的运行状态和相关管理。Spring Boot Actuator 可以配合 Prometheus 和 Grafana 完成完善的监控和告警体系。
RELATED

相关推荐

Lobe Icons 终极指南:如何在React应用中优雅集成AI品牌图标库

Lobe Icons 终极指南:如何在React应用中优雅集成AI品牌图标库

Lobe Icons 终极指南:如何在React应用中优雅集成AI品牌图标库 【免费下载链接】lobe-icons 🥨 Lobe Icons - Brings AI/LLM brand logos to your React & React Native apps — static SVG/PNG/WebP, no dependencies. 项目地址: https://gitcode.…

📅 2026/8/24 12:47:43
彻底解决Conda卡在Solving environment:从依赖解析原理到高效环境管理实践

彻底解决Conda卡在Solving environment:从依赖解析原理到高效环境管理实践

1. 项目概述:当Conda卡在“Solving environment”时,我们到底在解决什么? 如果你在命令行里敲下 conda install 或 conda create 后,光标就停在 Solving environment: 后面,进度条一动不动,或者直接抛…

📅 2026/8/24 12:47:43
实用指南:使用Universal Android Debloater高效清理安卓设备预装软件

实用指南:使用Universal Android Debloater高效清理安卓设备预装软件

实用指南:使用Universal Android Debloater高效清理安卓设备预装软件 【免费下载链接】universal-android-debloater Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life …

📅 2026/9/12 6:06:37
MORE NEWS

更多资讯

📰

PHP-CS-Fixer 规则集解析:使用 @PHP5x4Migration 让代码兼容 PHP 5.4

开发工具代码质量静态分析Lint格式化 【免费下载链接】PHP-CS-Fixer A tool to automatically fix PHP Coding Standards issues 项目地址: https://gitcode.com/gh_mirrors/ph/PHP-CS-Fixer 点击查看 免费下载 本指南围绕 PHP-CS-Fixer 中的 PHP5x4Migration 规则…

📰

5分钟搞定zimu源码:速查手册助你告别调试噩梦

5分钟搞定zimu源码:速查手册助你告别调试噩梦 复制来的代码跑不通,报错信息满屏飞,新手最容易在这个阶段崩溃。别慌,今天这篇zimu实战源码解析,就是你的救命速查手册。我们不只讲怎么跑,更要讲清楚每一行代码背后的逻辑,让你从“只会复制”变…

📰

搞定搜狐网邮箱源码解析,面试必问底层逻辑不慌

搞定搜狐网邮箱源码解析,面试必问底层逻辑不慌 上周陪一个刚入职的应届生做模拟面试,对方刚把自我介绍说完,面试官就甩出一句:“说说你平时用的邮箱系统,底层协议是怎么走通路的?”这哥们愣了五秒,支支吾吾答了个…

📰

RabbitMQ CLI 工具套件深度指南:架构解析、构建与自定义命令开发

后端消息队列消息路由 【免费下载链接】rabbitmq-server Open source RabbitMQ: core server and tier 1 (built-in) plugins 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq-server 点击查看 免费下载 导读 本文面向 RabbitMQ 运维工程师与插件开发者&am…

📰

Virgilio 数据科学项目全流程指南:从问题定义到模型上线的完整生命周期

Virgilio 数据科学项目全流程指南:从问题定义到模型上线的完整生命周期 【免费下载链接】Virgilio Your new Mentor for Data Science E-Learning. 项目地址: https://gitcode.com/gh_mirrors/vi/Virgilio 导读 本文以 Virgilio 开源仓库中的 数据科学流程文…

📰

围棋入门教程避坑指南:从新手到入门的5个致命陷阱

围棋入门教程避坑指南:从新手到入门的5个致命陷阱 刚下载了最新版围棋软件,打开发现界面全变了?别慌,这太正常了。很多老玩家升级版本后,API接口全变,以前的自动化脚本直接报错,新手更是被复杂的UI劝退。这份避坑指南,就是帮你避开那些让你想摔…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬