2026-07-14

应用程序监控与可观测性

监控:时刻关注您的应用程序

监控是您了解应用程序运行状况的方式。当一切正常时,监控会告诉您。当出现问题时,监控会告诉您发生了什么、何时发生以及为什么发生。没有监控,您就像在盲目飞行——只有在用户投诉时才会发现问题。

可观测性的三大支柱

可观测性建立在三种数据类型之上。指标是随时间变化的数值测量——每秒请求数、错误率、内存使用量。日志是事件的记录——每个请求、每个错误、每个重要操作。追踪跟踪单个请求在多个服务中的路径,显示时间花费在哪里。

每种数据类型回答不同的问题。指标告诉您出了问题。日志告诉您发生了什么。追踪告诉您问题发生在哪里。它们共同为您提供系统健康状况的完整图景。

指标:健康仪表盘

最重要的跟踪指标是四个黄金信号:延迟(请求耗时)、流量(处理的请求数)、错误(失败的请求数)和饱和度(资源接近容量的程度)。这些让您快速了解系统健康状况。

Prometheus 是收集指标最流行的工具,Grafana 是可视化指标的标准。您设置导出器从服务器、数据库和应用程序收集指标,Prometheus 定期抓取它们。Grafana 将这些数据转化为仪表盘和告警。

日志:一切记录

日志是出现问题时的查看位置。应用程序中的每个重要事件都应生成一个日志条目,包含时间戳、严重级别和足够的上下文以理解发生了什么。结构化日志——日志是带有明确定义字段的 JSON 对象——使其可搜索和可分析。

ELK 栈(Elasticsearch、Logstash、Kibana)是最常见的日志管理系统。Logstash 收集和处理日志,Elasticsearch 为快速搜索建立索引,Kibana 提供用于探索的 UI。一个更简单的替代方案是 Loki,它与 Grafana 配合使用,设置更简单。

告警:知道何时醒来

监控的目的是在需要关注时向您发出告警。但并非每个异常都需要在凌晨 3 点叫醒某人。仔细定义告警规则:高错误率、高延迟、磁盘空间不足、证书即将过期。每个告警都应清楚描述问题所在以及如何修复。告警过多会导致告警疲劳,人们会忽略它们。

真实用户监控

服务器指标告诉您基础设施的情况,但无法告诉您用户的真实体验。真实用户监控(RUM)从用户浏览器收集数据——页面加载时间、交互延迟、JavaScript 错误。Google 的 Chrome 用户体验报告和 Datadog RUM 等商业工具让您能够实时了解用户体验。

让我们合作吧

您需要更多信息、项目帮助或开发构想吗?

无论是简单的问题还是完整的项目,我都在这里。联系我,让我们将您的想法变为现实。

联系我

切换主题

选择一个专业主题进行探索: