什么是可观测性工程?

一名戴着眼镜、身穿格子衬衫的男子在办公桌前工作,办公桌上有两台大显示器,上面显示着一行行代码,他面前还有一台打开的笔记本电脑。

作者

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

什么是可观测性工程?

可观测性工程是设计和构建本质可观测的系统,并利用先进的工具和方法收集、分析和可视化可观测性数据的过程。

当系统可观测时,开发人员可以通过分析软件系统、基础设施和网络组件的外部输出来了解其状态。传统的 IT 监控工具通常无法提供对当今复杂软件环境的完整可见性,因为当今的软件环境具有分布式架构和大量微服务以及其他相互依赖的组件。

现代软件系统和计算环境需要现代的全栈可观测性工具,以提供分布式跟踪功能和全面的指标和记录功能。通过可观测性工程,可观测性特性被融入到开发和生产系统中。

可观测性工程师将可观测性功能构建到应用程序代码、基础设施和中间件层中,并将系统事件数据集成到监控管道中。他们使用先进的工具关联容器、Pod、服务器和内容分发网络 (CDN) 之间的系统事件,以实现复杂的云原生计算环境中的端到端可追溯性。

可观测性工程帮助团队分析监控和遥测数据,创建响应更快的警报机制,并获得更细致的数据可视化和仪表板。它还支持左移可观测性战略,使开发人员能够主动检测系统问题,了解其根本原因,并通过在开发生命周期的早期运行可观测性功能来确定解决问题的最有效方法。

通过将可观测性工程纳入其开发和网络管理实践,企业可以创建更多可观测系统,促进安全、高可用性、高性能应用程序和服务的交付。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

可观测性解释

可观测性是指仅根据其外部输出(特别是遥测)的了解来理解复杂系统的内部状态或状况的能力。

在可观测系统中,IT 团队可以更轻松地监控和分析系统性能。例如,他们可以准确地了解数据如何在组织的技术栈(包括应用程序、本地数据中心云环境)中流动,并找出任何瓶颈。这种洞察分析可以帮助团队更快地识别和修复问题,并总体上创建更强大、更具弹性的系统。

可观测性的核心是将原始数据转化为可操作的洞察分析。然而,与传统的监控方法(侧重于预定义指标和被动故障排除)不同,可观测性采用主动方法。

可观测性工具依靠来自广泛数据源的数据收集来进行更深入的分析并加速问题解决。它们从各种网络组件(容器、Pod 和微服务等)收集遥测和其他数据,为开发团队提供组件及其所属大型系统的运行状况和性能的整体视图。

遥测包括可观测性的“三大支柱”:日志、指标和跟踪。

日志是网络和软件系统内发生情况的详细记录。它提供有关发生了什么、何时发生以及发生在环境中的位置等详细信息。

指标是对系统性能与资源使用情况的数值化评估。其通过捕获特定数据类型及关键性能指标 (KPI)(如延迟、丢包率、带宽可用性与设备 CPU 利用率),展现系统健康状态的高级别概览。

追踪是每个用户请求在网络中流转过程的端到端记录。通过跟踪,可以深入了解数据包在穿越多个设备和复杂系统时的路径和行为,这对于理解分布式环境至关重要。

与监控工具不同,可观测性平台以主动的方式使用遥测。DevOps 开发运维团队和站点可靠性工程师 (SRE) 使用可观测性工具实时关联遥测数据,并获得完整的、情境化的系统健康视图。这使团队能够深入理解系统各元素及其相互关系。

通过提供包含依赖关系的 IT 环境全景视图,可观测性解决方案可以向团队展示任何系统事件的“内容”、“位置”、“成因”及其对整体环境性能的潜在影响。它们还可以自动发现系统中可能出现的新遥测源(例如,对软件应用程序的新应用程序编程接口 (API) 调用)。

遥测和数据关联功能通常决定软件工程师和 DevOps 开发运维团队如何实现应用程序检测、调试流程和问题解决。利用这些工具,IT 团队能够在问题升级之前检测并解决问题,从而帮助确保无缝连接、停机时间最少和更好的用户体验。

然而,它们也提供了开发人员可以纳入未来可观测性实践的反馈,这也使它们成为可观测性工程不可或缺的一部分。

可观测性工程的基本原理

成功的可观测性工程依赖于一些重要原则,包括:

    全面的应用程序检测

    在整个应用程序代码库中嵌入记录、指标和跟踪有助于工程团队在重要收集点捕获关键数据。

    团队可以使用结构化日志记录格式(例如 JSON)来简化日志管理,并让日志更易于搜索和解析。此外,对每个微服务和第三方整合进行插桩检测,收集传入和传出数据请求的跟踪信息,有助于全面了解整个 IT 环境,从而让开发人员更快地发现并修复问题。

    分布式跟踪

    分布式跟踪工具能可视化计算环境中每个数据请求的整个路径,帮助 IT 团队在出现问题时快速排除故障。

    开发人员可以使用唯一标识符来跟踪遍历多个服务的请求,从而提供对系统运营的完整、端到端的洞察分析。例如,工程师可以在生态系统的边缘(例如在 API Gateway)为每个传入数据请求分配唯一的跟踪 ID,并将跨度 ID 应用于请求历程的每个部分。

    有意义的服务级别目标 (SLO)

    SLO 是某项服务在特定时期内商定的性能目标。它们有助于确保企业能够满足服务水平协议 (SLA);该协议是服务提供商和客户之间的合同,此等合同定义了要提供的服务以及用户可预期的性能水平。

    建立代表实际用户体验的清晰、可量化的指标,并为系统可靠性和性能设定可实现的目标,是可观测性工程不可或缺的一部分。此过程不仅有助于确保工程师始终处理相关的可观测性数据,而且还有助于准确检测和解决问题。

    可观测性优先的文化

    可观测性工程不仅仅是在开发生命周期中左移可观测性。它还可以促进可观测性驱动的开发,其中可观测性实践被集成到开发人员的日常工作流中,并影响工程师创建和管理代码的方式。

    可观测性工程的关键组件

    除了基本的遥测数据和关联工具外,可观测性工程还依赖于:

    实时监控和预警

    建立稳健的监控协议对于维护可观测系统至关重要。监控工具可以持续收集和跟踪一系列系统指标,包括内存使用情况、错误率、响应时间和合成事务结果。实时监控有助于确保工程师掌握有关系统行为的最新信息。

    大多数可观测性解决方案还包括自动预警机制,可通知团队异常事件和偏离既定基线的情况。

    结构化事件

    结构化事件是包含键值对的数据记录,这些键值对描述系统中的特定活动或事件。传输结构化事件通常是跟踪重大系统活动和变化的最佳方式,因为它们捕获导致特定状态或错误的上下文和操作。

    每个事件通常包括一个唯一的标识符、元数据(例如标头和变量)和执行时间戳,这使得它们对于调试、审计和取证分析非常有价值。

    应用程序性能监控

    应用程序性能监控工具提供对应用程序健康状况和最终用户体验的全面可见性。它们可以跟踪关键的应用程序性能指标,例如事务吞吐量、延迟和服务之间的依赖关系,帮助团队诊断性能瓶颈、跟踪用户交互并了解整个应用程序栈的变化的影响。

    仪表板

    仪表板汇聚并显示来自系统不同组件的指标、日志和跟踪信息,为团队提供洞察分析,帮助他们快速评估性能、识别数据趋势并查明问题。仪表板通常是可定制的,这使得开发人员能够对其进行配置,以突出显示与组织中每个利益相关者的角色最相关的数据。

    与 DevOps 开发运维和 SRE 集成

    可观测性工程与 DevOps 开发运维和 SRE 方法紧密相连。

    它提供了团队实施高级可观测性实践所需的数据,例如功能标记(在运行时打开或关闭新功能以控制哪些用户可以访问它们)和蓝绿部署(开发人员运行两个相似的并行生产环境(或集群),每个环境运行应用程序的不同版本)。

    通过将可观测性工程嵌入到 CI/CD 管道自动化流程中,IT 团队可以增强整体系统可靠性、加速软件交付并自信地管理生产环境中的变化。

    Mixture of Experts | 12 月 12 日,第 85 集

    解码 AI:每周新闻摘要

    加入我们世界级的专家小组——工程师、研究人员、产品负责人等将为您甄别 AI 领域的真知灼见,带来最新的 AI 资讯与深度解析。

    可观测性工程技术

    可观测性工程包含一系列可以加深对 IT 环境可见性的实践和工具。它还使开发人员能够实施更复杂的工程方法,包括:

    业务关键绩效指标 (KPI) 关联

    可观测性工程帮助团队将技术指标(例如延迟)与关键业务成果(例如客户满意度或收入)联系起来。使用这种方法,IT 人员能够评估技术问题对业务的影响,确定最重要的修复措施的优先级,并使技术优先级与组织目标保持一致。

    例如,如果可观测性数据显示高延迟与较低的转化率有关,那么开发人员就可以解决延迟问题,从而帮助提高转化率。

    OpenTelemetry (OTel)

    OpenTelemetry 是一个开源可观测性框架,包括一套软件开发工具包 (SDK)、供应商无关的 API 以及其他应用程序、系统和设备仪表专用工具组合。无论编程语言、基础设施或运行时环境如何,其均可简化遥测数据的采集方式,并支持开发人员为任意可观测性后端生成、收集和导出标准化遥测数据。

    借助 OTel,可观测性工程师可以跨不同的应用程序、系统和用例一致地收集遥测数据;简化数据集成和可观测性实践;并确保 IT 环境能够经受未来的考验。

    持续验证

    持续验证使开发人员能够将可观测性检查直接嵌入到 CI/CD 管道中,并在问题进入生产阶段之前将其识别出来。在应用程序开发的构建和部署阶段使用自动监控、日志记录和警报功能,团队可以及时发现性能问题。这些流程有助于优化部署可靠性,缩短反馈周期,从而更快、更高质量地发布软件。

    机器学习驱动的异常检测

    企业可以使用人工智能驱动算法筛选大量可观测性数据,并发现传统工具可能无法解决的新兴系统问题。例如,在长短期记忆 (LSTM) 网络中,机器学习 (ML) 技术使网络能够更好地对序列数据(例如时间序列数据和自然语言)进行建模和学习。

    LSTM 可以使用遥测数据进行训练,以识别正常的系统行为并预测未来的系统状态。如果实际数据与预测存在显著偏差,团队会收到警报,通知他们存在潜在的安全漏洞、网络故障或系统降级。

    混沌工程

    混沌工程是开发人员故意在生产或预生产环境中造成故障以了解其对系统的影响的过程。模拟中断(例如网络故障、服务器崩溃或流量激增)使可观测性工程师能够识别系统漏洞。这还能帮助他们改善防御态势和事件响应策略,并确保系统能够抵御意外事件。

    可观测性工程的优点

    • 更好的异常检测和故障排除。可观测性工程有助于团队快速发现异常活动,从而更快、更彻底地进行故障排除和调试。
    • 更短的平均修复时间 (MTTR)可观测性工程使开发团队能够快速检测并解决问题,从而大幅缩短 MTTR。
    • 数据驱动型决策可观测性工具提供的可操作的洞察分析可以使团队就系统架构、资源管理和性能调整做出更明智的决策。
    • 改善用户体验。可观测性工程帮助开发人员主动发现功能升级和优化的机会,以便用户与软件和网络实现无缝交互。
    • 持续改进通过可观测性工程,DevOps 开发运维团队可以全面、深入地了解其代码在生产中的执行情况,从而加速识别错误并促进持续改进。
    相关解决方案
    IBM Instana Observability

    利用 AI 和自动化的强大功能,主动解决整个应用程序堆栈中的问题。

    深入了解 IBM Instana Observability
    IBM 可观测性解决方案

    借助人工智能驱动的可观测性,最大限度提高运营弹性,并确保云原生应用正常运行。

    深入了解 IBM 可观测性解决方案
    IBM® Consulting AIOps

    使用生成式 AI 增强 IT 自动化和运营,将 IT 基础设施的每个方面与业务优先事项保持一致。

    深入了解 IBM Consulting AIOps
    采取后续步骤

    了解 IBM Instana® 如何通过 SaaS 或自托管形式提供实时应用程序性能监控及 AI 驱动洞察。

    1. 深入了解 IBM Instana Observability
    2. 了解实际应用
    脚注:

    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