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

如何对系统进行监控?

核心监控指标

无论你使用的是什么架构(微服务、单体还是云原生),这四个指标都必须优先监控:

延迟: 服务发出请求到收到响应所需的时间(例如:API 响应时间)

注意: 不要只看平均值,必须监控 P95、P99 分位数(即 95% 或 99% 的请求都在该时间以内),因为平均值会掩盖极端卡顿的问题

流量: 对系统的需求量,用以衡量系统的负载

示例: 每秒 HTTP 请求数 (QPS/RPS)、网络吞吐量、并发连接数

错误: 请求失败的比率

示例: HTTP 5xx 状态码错误率、代码异常抛出率、超时次数。错误率飙高通常意味着系统已经或即将崩溃

饱和度: 系统资源利用率,衡量系统有多“满”

示例: 内存使用率、CPU 使用率、磁盘 I/O 瓶颈。当饱和度达到 80%-90% 时,延迟通常会开始剧烈飙升

分层监控指标体系

基础设施

CPU 利用率 & 负载: CPU 是否长期满载

内存使用率: 是否存在内存泄漏(Memory Leak),关注交换区(Swap)是否被频繁使用

磁盘空间 & I/O: 磁盘是否写满(日志塞满是常见故障原因),IOPS 是否达到读写瓶颈

网络带宽: 带宽是否跑满,是否存在大量丢包

运行环境和中间件

JVM: GC(垃圾回收)暂停时间、GC 频率、堆内存分配

数据库(MySQL/PostgreSQL等): 慢查询数量、活跃连接数、主从同步延迟(Replication Lag)、锁等待时间

缓存(Redis/Memcached等): 缓存命中率(Hit Rate)、内存碎片率、连接数

消息队列(Kafka/RabbitMQ等): 消息堆积量(Lag,这是衡量消费能力的关键指标)、生产/消费速率

业务与用户体验指标

用户侧体验(前端/客户端): 首屏加载时间、前端错误率、应用崩溃率

业务健康度: 下单量、支付成功率、登录失败率。如果五分钟内下单量跌零,即使 CPU 正常,系统也一定出了大问题

如何让监控真正发挥作用?

建立动态告警: 不要所有的指标都报同一个级别的警。

  • P0(灾难): 核心业务受损(如支付失败率 > 1%),需要立即电话通知 oncall
  • P1(警告): 资源即将耗尽(如磁盘空间剩余 < 15%),工作时间排查即可

可观测性建设: 指标只能告诉你“系统生病了”,你还需要配合 日志 和 链路追踪 来精准定位“病因在哪里”。

开源工具推荐:

指标收集与告警: Prometheus + Grafana

Prometheus(普罗米修斯): 负责收集数据和触发告警。它像一个定时检查员,每隔几秒钟就去各个服务器和应用上抓取数字(比如:CPU使用率 85%、内存剩余 10%、每秒请求数 500)。如果发现数字异常,它会发出告警通知

Grafana: 负责数据可视化。Prometheus 收集到的都是枯燥的数字,Grafana 则把这些数字变成炫酷、直观的图表(折线图、仪表盘),通常大屏幕上放的监控看板就是用它做的

日志系统: ELK Stack (Elasticsearch, Logstash, Kibana)

ELK Stack: 传统且功能强大的老牌组合

  • Elasticsearch: 核心搜索引擎,负责把海量日志存起来并提供超快的搜索功能
  • Logstash: 传送带和加工厂,负责收集、清洗和格式化日志
  • Kibana: 图形界面,让你能在网页上像用百度一样搜索和分析日志

应用性能监控 (APM):SkyWalking

SkyWalking 是一款专门为微服务、云原生和基于容器(如 Kubernetes)架构设计的开源应用性能监控(APM)系统,它核心关注的是分布式系统的可观测性。

核心功能特性有

  1. 服务拓扑图
  2. 分布式链路追踪
  3. 指标分析与告警
http://www.zskr.cn/news/1439213.html

相关文章:

  • 用Unity UGUI VerticalLayoutGroup 和递归算法,5步搞定可无限扩展的树形菜单
  • 微积分(六)——导数:为什么本质是“变化率”?
  • 如何永久保存微信聊天记录?3步实现数据自主管理的完整指南
  • 72个故事构建技术趋势认知:从AI到边缘计算的网状学习框架
  • 【C/C++】IO流
  • 如何将gte-base集成到生产环境?完整部署指南与最佳实践
  • 【北京朝阳区】房屋修缮指南:防水补漏、瓷砖空鼓与白蚁消杀全解析 - 鲁顺
  • 监控画面总有噪点?深入浅出聊聊海思/安霸芯片里的3D降噪技术到底是怎么工作的
  • Deliberate AI绘图模型深度解析:从v1到v6的进化之路与核心功能揭秘
  • DeBERTa-v3-large_boolq完整指南:从安装到推理的终极教程
  • Umi-OCR双层PDF转换技术深度解析与实战指南
  • GPT-2 Large与其他GPT模型对比:如何选择最适合你项目的语言模型
  • RoBERTa-large-sst2开发者指南:5个自定义训练与模型优化技巧
  • 深度解析OpCore-Simplify:自动化OpenCore EFI配置的技术实现
  • 告别采样负电压!用差分运放给MCU设计一个‘零压线’信号调理电路
  • [开源] 医疗大模型知识盲区检测与可视化系统:面向临床决策者的AI能力边界认知工具
  • Obsidian美化实用指南:轻松打造高效又美观的知识管理界面
  • cross-en-fr-it-roberta-sentence-transformer vs 传统模型:4大语言场景下的性能对比分析
  • 5分钟完成黑苹果EFI配置:OpCore-Simplify智能自动化工具完整指南
  • 别再只用WebRTC了!结合FFmpeg实现实时美颜滤镜与视频录制(C++实战)
  • 如何高效获取中小学电子教材:智慧教育平台解析工具的完整指南
  • AI赋能教育革新与自由职业生产力系统构建实战
  • 可解释AI:从黑盒模型到透明决策的技术实现与应用实践
  • 别再死记硬背了!手把手带你拆解遗传算法求解流水车间调度的每一个步骤
  • 如何构建企业级大语言模型战略:Qwen架构演进与跨平台部署最佳实践
  • 如何用WeChatMsg轻松备份微信聊天记录:免费开源工具完整指南
  • 不止于描边:用C#脚本扩展Outline Effect插件,实现自定义交互与状态反馈
  • Keil 安装 CMSIS-FreeRTOS 失败解决方案
  • 从事件驱动到主动智能:Slack机器人架构升级与工程实践
  • Qwen3.6-27B-OBLITERATED模型量化详解:Q4_K_M到Q8_0的完整对比