《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 完成完善的监控和告警体系。

相关新闻

职场进阶必备!OpenClaw 2.9.0智能桌面自动化工具落地实操指南

职场进阶必备!OpenClaw 2.9.0智能桌面自动化工具落地实操指南

🔥前言:Win11 环境运行 OpenClaw 必读说明 OpenClaw(因其图标酷似小龙虾,在社区中常被昵称为“小龙虾”)是一款备受关注的本地优先 AI 智能体项目。它基于开源协议开发,能够通过自然语言指令驱动计算机完成…

2026/10/29 8:43:00 阅读更多 →
3步掌握PUBG-Logitech:开源智能识别压枪工具的完整教程

3步掌握PUBG-Logitech:开源智能识别压枪工具的完整教程

3步掌握PUBG-Logitech:开源智能识别压枪工具的完整教程 【免费下载链接】PUBG-Logitech PUBG罗技鼠标宏自动识别压枪 项目地址: https://gitcode.com/gh_mirrors/pu/PUBG-Logitech PUBG-Logitech是一款基于图像识别技术的开源罗技鼠标宏压枪工具,…

2026/10/29 22:38:16 阅读更多 →
YOLOv11改进 | 主干/Backbone篇 | 目标检测网络FasterNeT轻量化网络助力yolov11改进(提高FPS和检测效率)

YOLOv11改进 | 主干/Backbone篇 | 目标检测网络FasterNeT轻量化网络助力yolov11改进(提高FPS和检测效率)

一、本文介绍 本文给大家带来的改进机制是FasterNet网络,将其用来替换我们的特征提取网络,其旨在提高计算速度而不牺牲准确性,特别是在视觉任务中。它通过一种称为部分卷积(PConv)的新技术来减少冗余计算和内存访问。这种方法使得FasterNet在多种设备上运行速度比其他网络…

2026/10/23 18:42:35 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/30 0:01:36 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/30 9:20:34 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/30 10:19:21 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/30 0:01:37 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/30 10:19:39 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/30 9:21:37 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/29 17:01:10 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 10:28:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 0:01:33 阅读更多 →