可观测性工程是设计和构建本质可观测的系统,并利用先进的工具和方法收集、分析和可视化可观测性数据的过程。
当系统可观测时,开发人员可以通过分析软件系统、基础设施和网络组件的外部输出来了解其状态。传统的 IT 监控工具通常无法提供对当今复杂软件环境的完整可见性,因为当今的软件环境具有分布式架构和大量微服务以及其他相互依赖的组件。
现代软件系统和计算环境需要现代的全栈可观测性工具,以提供分布式跟踪功能和全面的指标和记录功能。通过可观测性工程,可观测性特性被融入到开发和生产系统中。
可观测性工程师将可观测性功能构建到应用程序代码、基础设施和中间件层中,并将系统事件数据集成到监控管道中。他们使用先进的工具关联容器、Pod、服务器和内容分发网络 (CDN) 之间的系统事件,以实现复杂的云原生计算环境中的端到端可追溯性。
可观测性工程帮助团队分析监控和遥测数据,创建响应更快的警报机制,并获得更细致的数据可视化和仪表板。它还支持左移可观测性战略,使开发人员能够主动检测系统问题,了解其根本原因,并通过在开发生命周期的早期运行可观测性功能来确定解决问题的最有效方法。
通过将可观测性工程纳入其开发和网络管理实践,企业可以创建更多可观测系统,促进安全、高可用性、高性能应用程序和服务的交付。
可观测性是指仅根据其外部输出(特别是遥测)的了解来理解复杂系统的内部状态或状况的能力。
在可观测系统中,IT 团队可以更轻松地监控和分析系统性能。例如,他们可以准确地了解数据如何在组织的技术栈(包括应用程序、本地数据中心和云环境)中流动,并找出任何瓶颈。这种洞察分析可以帮助团队更快地识别和修复问题,并总体上创建更强大、更具弹性的系统。
可观测性的核心是将原始数据转化为可操作的洞察分析。然而,与传统的监控方法(侧重于预定义指标和被动故障排除)不同,可观测性采用主动方法。
可观测性工具依靠来自广泛数据源的数据收集来进行更深入的分析并加速问题解决。它们从各种网络组件(容器、Pod 和微服务等)收集遥测和其他数据,为开发团队提供组件及其所属大型系统的运行状况和性能的整体视图。
遥测包括可观测性的“三大支柱”:日志、指标和跟踪。
日志是网络和软件系统内发生情况的详细记录。它提供有关发生了什么、何时发生以及发生在环境中的位置等详细信息。
指标是对系统性能与资源使用情况的数值化评估。其通过捕获特定数据类型及关键性能指标 (KPI)(如延迟、丢包率、带宽可用性与设备 CPU 利用率),展现系统健康状态的高级别概览。
追踪是每个用户请求在网络中流转过程的端到端记录。通过跟踪,可以深入了解数据包在穿越多个设备和复杂系统时的路径和行为,这对于理解分布式环境至关重要。
与监控工具不同,可观测性平台以主动的方式使用遥测。DevOps 开发运维团队和站点可靠性工程师 (SRE) 使用可观测性工具实时关联遥测数据,并获得完整的、情境化的系统健康视图。这使团队能够深入理解系统各元素及其相互关系。
通过提供包含依赖关系的 IT 环境全景视图,可观测性解决方案可以向团队展示任何系统事件的“内容”、“位置”、“成因”及其对整体环境性能的潜在影响。它们还可以自动发现系统中可能出现的新遥测源(例如,对软件应用程序的新应用程序编程接口 (API) 调用)。
遥测和数据关联功能通常决定软件工程师和 DevOps 开发运维团队如何实现应用程序检测、调试流程和问题解决。利用这些工具,IT 团队能够在问题升级之前检测并解决问题,从而帮助确保无缝连接、停机时间最少和更好的用户体验。
然而,它们也提供了开发人员可以纳入未来可观测性实践的反馈,这也使它们成为可观测性工程不可或缺的一部分。
成功的可观测性工程依赖于一些重要原则,包括:
在整个应用程序代码库中嵌入记录、指标和跟踪有助于工程团队在重要收集点捕获关键数据。
团队可以使用结构化日志记录格式(例如 JSON)来简化日志管理,并让日志更易于搜索和解析。此外,对每个微服务和第三方整合进行插桩检测,收集传入和传出数据请求的跟踪信息,有助于全面了解整个 IT 环境,从而让开发人员更快地发现并修复问题。
分布式跟踪工具能可视化计算环境中每个数据请求的整个路径,帮助 IT 团队在出现问题时快速排除故障。
开发人员可以使用唯一标识符来跟踪遍历多个服务的请求,从而提供对系统运营的完整、端到端的洞察分析。例如,工程师可以在生态系统的边缘(例如在 API Gateway)为每个传入数据请求分配唯一的跟踪 ID,并将跨度 ID 应用于请求历程的每个部分。
SLO 是某项服务在特定时期内商定的性能目标。它们有助于确保企业能够满足服务水平协议 (SLA);该协议是服务提供商和客户之间的合同,此等合同定义了要提供的服务以及用户可预期的性能水平。
建立代表实际用户体验的清晰、可量化的指标,并为系统可靠性和性能设定可实现的目标,是可观测性工程不可或缺的一部分。此过程不仅有助于确保工程师始终处理相关的可观测性数据,而且还有助于准确检测和解决问题。
可观测性工程不仅仅是在开发生命周期中左移可观测性。它还可以促进可观测性驱动的开发,其中可观测性实践被集成到开发人员的日常工作流中,并影响工程师创建和管理代码的方式。
除了基本的遥测数据和关联工具外,可观测性工程还依赖于:
建立稳健的监控协议对于维护可观测系统至关重要。监控工具可以持续收集和跟踪一系列系统指标,包括内存使用情况、错误率、响应时间和合成事务结果。实时监控有助于确保工程师掌握有关系统行为的最新信息。
大多数可观测性解决方案还包括自动预警机制,可通知团队异常事件和偏离既定基线的情况。
结构化事件是包含键值对的数据记录,这些键值对描述系统中的特定活动或事件。传输结构化事件通常是跟踪重大系统活动和变化的最佳方式,因为它们捕获导致特定状态或错误的上下文和操作。
每个事件通常包括一个唯一的标识符、元数据(例如标头和变量)和执行时间戳,这使得它们对于调试、审计和取证分析非常有价值。
应用程序性能监控工具提供对应用程序健康状况和最终用户体验的全面可见性。它们可以跟踪关键的应用程序性能指标,例如事务吞吐量、延迟和服务之间的依赖关系,帮助团队诊断性能瓶颈、跟踪用户交互并了解整个应用程序栈的变化的影响。
仪表板汇聚并显示来自系统不同组件的指标、日志和跟踪信息,为团队提供洞察分析,帮助他们快速评估性能、识别数据趋势并查明问题。仪表板通常是可定制的,这使得开发人员能够对其进行配置,以突出显示与组织中每个利益相关者的角色最相关的数据。
可观测性工程包含一系列可以加深对 IT 环境可见性的实践和工具。它还使开发人员能够实施更复杂的工程方法,包括:
可观测性工程帮助团队将技术指标(例如延迟)与关键业务成果(例如客户满意度或收入)联系起来。使用这种方法,IT 人员能够评估技术问题对业务的影响,确定最重要的修复措施的优先级,并使技术优先级与组织目标保持一致。
例如,如果可观测性数据显示高延迟与较低的转化率有关,那么开发人员就可以解决延迟问题,从而帮助提高转化率。
OpenTelemetry 是一个开源可观测性框架,包括一套软件开发工具包 (SDK)、供应商无关的 API 以及其他应用程序、系统和设备仪表专用工具组合。无论编程语言、基础设施或运行时环境如何,其均可简化遥测数据的采集方式,并支持开发人员为任意可观测性后端生成、收集和导出标准化遥测数据。
借助 OTel,可观测性工程师可以跨不同的应用程序、系统和用例一致地收集遥测数据;简化数据集成和可观测性实践;并确保 IT 环境能够经受未来的考验。
持续验证使开发人员能够将可观测性检查直接嵌入到 CI/CD 管道中,并在问题进入生产阶段之前将其识别出来。在应用程序开发的构建和部署阶段使用自动监控、日志记录和警报功能,团队可以及时发现性能问题。这些流程有助于优化部署可靠性,缩短反馈周期,从而更快、更高质量地发布软件。
企业可以使用人工智能驱动算法筛选大量可观测性数据,并发现传统工具可能无法解决的新兴系统问题。例如,在长短期记忆 (LSTM) 网络中,机器学习 (ML) 技术使网络能够更好地对序列数据(例如时间序列数据和自然语言)进行建模和学习。
LSTM 可以使用遥测数据进行训练,以识别正常的系统行为并预测未来的系统状态。如果实际数据与预测存在显著偏差,团队会收到警报,通知他们存在潜在的安全漏洞、网络故障或系统降级。
混沌工程是开发人员故意在生产或预生产环境中造成故障以了解其对系统的影响的过程。模拟中断(例如网络故障、服务器崩溃或流量激增)使可观测性工程师能够识别系统漏洞。这还能帮助他们改善防御态势和事件响应策略,并确保系统能够抵御意外事件。
快速识别并修复问题根源。 实时、高保真的数据提供了动态应用程序和基础设施环境的完整可见性。
使用生成式 AI 增强 IT 自动化和运营,将 IT 基础设施的每个方面与业务优先事项保持一致。
IBM SevOne Network Performance Management 是一款监视和分析软件,可提供对复杂网络的实时可见性和洞察。
1 Kumar, S. 与 Singh, R. (2024)。不要责怪用户:朝着可用、实用的身份验证手段。Communications of the ACM,67(4),78-85。https://doi.org/10.1145/3706599.3719914。
2 Datadog。(n.d.)。什么是 LLM 可观测性和监控?。2025 年 5 月 19 日检索自 https://www.datadoghq.com/knowledge center/llm-observability/。
3 LLM 可观测性,GitHub。2025 年 5 月 19 日检索自 https://github.com/DataDog/llm-observability,Datadog。(n.d.)。
4 Dong, L.、Lu, Q. 及 Zhu, L. (2024)。AgentOps:实现 LLM 智能体的可观测性。arXiv。https://arxiv.org/abs/2411.05285。
5 LangChain。(n.d.)。Datadog LLM 可观测性 - LangChain、Langsmith.js。2025 年 5 月 19 日,检索自 https://js.langchain.com/docs/integrations/callbacks/datadog_tracer/。
6 优化 LLM 准确性,2025 年 5 月 19 日检索自 https://platform.openai.com/docs/guides/optimizing-llm-accuracy。
7 IBM® Instana Observability。2025 年 5 月 19 日检索自 https://www.ibm.com/cn-zh/products/instana。
8 监控 AI 智能体。IBM 文档。2025 年 5 月 19 日检索自 https://www.ibm.com/docs/en/instana-observability/1.0.290?topic=applications-monitoring-ai-agents。
9Zhou, Y、Yang, Y. 及 Zhu, Q. (2023)。LLMGuard:通过运行时检测来预防针对 LLM 的提示注入攻击。arXiv 预印本 arXiv:2307.15043。https://arxiv.org/abs/2307.15043。
10 Vesely, K. 与 Lewis, M. (2024)。机器学习管道的实时监控和诊断。Journal of Systems and Software,185,111136。https://doi.org/10.1016/j.jss.2023.111136