Header background

什么是可观测性?不仅是日志、指标和追踪

随着企业广泛采用云原生技术,系统架构的复杂度和规模呈现爆发式增长。客户体验的重要性空前凸显,IT团队因此面临着前所未有的压力,必须更快地追踪和响应各类问题。为应对这些挑战,团队正转向可观测性解决方案,以便在高度分散且复杂的计算环境中主动识别并解决问题,同时实现工作流自动化。但可观测性究竟是什么?团队又该如何正确实施?

可观测性是什么?

在IT和云计算领域,可观测性是指基于系统生成的日志、指标和追踪数据来衡量其当前状态的能力:

  • 日志记录事件的详细信息
  • 指标捕捉用于量化服务性能和健康状况的数值测量
  • 追踪记录服务响应请求时的端到端连接路径

随着云原生环境日益复杂,故障或异常的潜在根源更难定位,可观测性在近年变得至关重要。

由于云服务依赖分布式动态架构,可观测性也可指代企业用于解读云性能数据的特定软件工具与实践方法。

可观测性如何运作

可观测性依赖于多云计算环境中端点与服务生成的遥测数据。在现代环境中,每个硬件、软件及云基础设施组件,每个容器、开源工具和微服务都会记录所有活动。可观测性的目标在于洞察跨环境及跨技术层面的动态,从而及时发现并解决问题,确保系统高效可靠,提升客户满意度。

实现可观测性

企业通常通过组合使用多种监控方法实现可观测性,包括采用OpenTelemetry等开源监控工具。

许多企业还部署可观测性解决方案,以帮助检测并分析事件对运营、软件开发生命周期、应用安全及终端用户体验的影响。

随着团队开始收集并运用可观测性数据,他们逐渐意识到其不仅对IT部门,更对整个业务的价值。

尽管有人将可观测性视为应用性能监控(APM)的华丽包装词,但比较可观测性与监控时需注意以下关键区别:

监控与可观测性:二者有何本质差异?

可观测性是否只是监控的换名?简言之,并非如此。虽然可观测性与监控相关联且可互补,但二者实为不同概念。

监控

在监控场景中,通常需预先配置仪表板以预警预期出现的性能问题。但这类仪表板建立在关键假设之上:即能够预判问题发生前可能出现的各类故障。

云原生环境因其动态复杂的特性,难以适应此类监控模式——这意味着无法预先预测可能出现的问题。

可观测性

在可观测性场景中,团队通过全面部署监控工具获取完整数据,可灵活探索系统运行状态,快速定位那些难以预见的故障根源。

传统行业将可观测性定义为日志、指标和追踪。然而在更复杂的云环境中,可观测性必须涵盖更多维度,包括元数据、用户行为、拓扑与网络映射,以及代码级细节的访问权限。

Observability pillars include logs, metrics, and traces.
可观测性支柱包含日志、指标和追踪。现代可观测性还涵盖元数据、用户行为、拓扑网络映射及代码级细节。

可观测性为何重要?

在企业环境中,可观测性帮助跨职能团队理解并解答高度分布式系统中的具体问题。它能让您洞察系统瓶颈与故障点,明确性能优化路径。部署可观测性解决方案后,团队可实时接收问题警报,在影响用户前主动解决隐患。

洞悉“未知未知”

现代云环境动态演变,其规模与复杂性持续变化,团队既无法预知也难以监控多数问题。可观测性正能解决这种普遍存在的“未知未知”困境,使您能持续自动识别新类型问题。

自动化AIOps与DevSecOps

可观测性也是IT运维人工智能(AIOps)的核心能力。随着越来越多的组织采用云原生架构,他们也在寻求实施AIOps的方法,利用人工智能在整个DevSecOps生命周期中自动化更多流程。通过将人工智能应用于所有环节——从收集遥测数据到分析整个技术栈的运行状况——您的组织能够获得可靠的解决方案,从而实现应用程序监控、测试、服务级别目标(SLO)衡量、持续交付、应用安全和事件响应的自动化。

优化用户体验

可观测性的价值不仅限于IT场景。当开始收集分析可观测性数据后,您将获得洞察数字服务商业影响的宝贵窗口。这种可视性使您能够优化转化率、验证软件发布是否达成商业目标,并基于关键要素优先级制定业务决策。

当可观测性解决方案结合合成监控与真实用户监控分析用户体验数据时,您能抢先用户发现问题,并基于真实即时反馈设计更优体验。

可观测性价值

可观测性为IT团队、企业组织及终端用户带来强大效益。以下是其支持的部分应用场景:

1 应用性能监控

端到端全面可观测性使企业能更快查明应用性能问题根源,包括云原生及微服务环境引发的故障。团队还可借助高级可观测解决方案自动化更多流程,从而提升运维与应用团队的效率及创新能力。

2 DevSecOps与SRE

可观测性不仅是部署先进工具的结果,更是应用程序及其支撑基础设施的基础特性。软件架构师和开发者必须在设计阶段就确保系统具备可观测性。这样DevSecOpsSRE团队才能在软件交付生命周期中有效利用并解读观测数据,构建更优质、更安全、更具韧性的应用程序。

3 基础设施、云与Kubernetes环境监控

基础设施与运维(I&O)团队可借助可观测性解决方案提供的增强型上下文信息,监控本地与云端基础设施Kubernetes环境。这种基于统一可观测性的方法能提升应用程序运行时间与性能,缩短问题定位与解决时间,检测云延迟问题,优化云资源利用率,并改善其Kubernetes环境及现代云架构的管理效率。

4 终端用户体验

卓越的用户体验能提升企业声誉并增加收入,为竞争带来显著优势。通过在终端用户察觉前发现并解决问题,甚至在用户提出需求前主动优化,企业可显著提升客户满意度与忠诚度。通过实时回放技术,企业还能优化用户体验——该技术能直接呈现终端用户所见场景,使所有相关人员快速达成改进共识。

5 商业分析

商业分析使企业能够结合业务背景与全栈应用分析及性能数据,实时洞察业务影响、优化转化率、确保软件发布达成预期目标,并验证企业是否遵守内外服务协议(SLA)。

6 DevOps与DevSecOps自动化

DevSecOps团队可借助可观测性深入解析所开发应用,并自动化测试及持续集成/持续交付流程,从而更快发布更高质量的代码。这意味着企业将减少在战情室和相互指责上浪费的时间。从生产力角度看,这不仅提升了效率,更强化了高效协作所必需的积极工作关系。

这些组织层面的改进为进一步创新和数字化转型打开了大门。更重要的是,最终用户将通过卓越的用户体验获得切实收益。

如何实现系统可观测性?

若您了解可观测性,便知收集日志、指标和分布式追踪数据是实现成功的三大支柱。然而仅观察后端应用程序的原始遥测数据,无法全面展现系统运行状况。

忽视前端视角可能导致应用程序和基础设施在真实用户场景中的实际表现被扭曲甚至误判。在三大支柱基础上,IT团队必须通过用户体验数据补充遥测收集,消除盲区:

  1. 日志:记录特定时间发生的离散事件,可为结构化或非结构化文本记录。
  2. 指标:以计数或度量形式呈现的数值,通常经过一段时间的计算或聚合。指标可来自多种源头,包括基础设施、主机、服务、云平台及外部来源。
  3. 分布式追踪:追踪功能可沿着事务或请求在应用程序中的流动路径进行活动追踪,展示服务连接方式,包括代码级细节。
  4. 用户体验:用户体验数据通过添加应用程序特定数字体验的外部视角(即用户视角),扩展了传统可观测性遥测范围,即使在预生产环境中亦然。

为何三大可观测性支柱仍显不足

显然,数据采集仅是起点。单纯获取正确的日志、指标和追踪数据,不足以实现环境的真正可观测性。唯有当您能运用这些遥测数据达成最终目标——提升终端用户体验与业务成果时,才算真正实现了可观测性的价值。

开源解决方案的重要性

企业还可借助其他可观测性能力监控环境。诸如OpenTelemetry等开源方案为云环境中的遥测数据采集提供了事实标准。这些开源方案增强了云原生应用的可观测性,使开发与运维团队更易于在多环境中获得一致的应用健康状况认知。

真实用户监控(RUM)与合成测试的作用

企业还可通过真实用户监控实时洞察用户体验,追踪单次请求路径,深入了解其与沿途每个服务的交互过程。团队既能借助合成监控观察体验过程,也能查看实际会话的录屏记录。这些能力通过补充API数据、第三方服务数据、浏览器错误数据、用户人口统计数据以及用户视角的应用性能数据,实现了遥测功能的扩展。

借助真实用户监控,IT、DevSecOps和SRE团队不仅能全面掌握请求的端到端旅程,还能实时洞察系统健康状况。由此,他们可在性能受损前主动排查健康状况恶化的环节,更高效地恢复故障,并获得更精细化的用户体验认知。

切勿忽视团队负担过重的问题

尽管IT组织怀有良好意愿和战略规划,却常常高估本已不堪重负的团队能力——期望他们持续观察、理解并处理海量数据和洞察。虽然可观测性伴随着诸多复杂挑战,但克服这些挑战的企业终将获得丰厚回报。

可观测性面临哪些挑战?

可观测性始终是项挑战,但云环境的复杂性与快速变化使其成为紧迫课题。云环境(尤其在微服务和容器化应用场景中)产生的遥测数据量远超以往,且数据类型多样性也远超团队过往处理经验。最后,海量数据的涌入速度使得团队难以跟上信息流,更遑论及时准确解读数据以排查性能问题。

企业在可观测性实践中还常面临以下挑战:

1 数据孤岛

多代理、分散的数据源及孤立的监控工具,使得跨应用、多云环境及数字渠道(如Web、移动端和物联网)的关联性难以厘清。

2 数据量、速度、多样性与复杂性

AWSAzureGoogle Cloud Platform (GCP)等瞬息万变的现代云环境中,从每个组件收集的海量原始数据几乎无法提供有效答案。对于能在数秒内快速创建或销毁的Kubernetes和容器环境,同样面临此困境。

3 手动配置与部署

当IT团队被迫为每种新组件或代理手动配置代码时,他们耗费大量时间在构建可观测性上,而非基于观测数据进行创新。

4 缺乏预生产环境

即便在预生产环境进行负载测试,开发人员仍无法在代码部署前观察或理解真实用户对应用程序和基础设施的影响。

5 故障排查时间浪费

应用、运维、基础设施、开发及数字体验团队被卷入故障排查,试图定位问题根源,耗费宝贵时间猜测、解读遥测数据并寻求答案。

6 多工具与供应商困境

单一工具虽能提供应用架构特定领域的可观测性,却无法覆盖所有影响应用性能的系统与应用,导致可观测性不完整。

7 无法确定根本原因

此外,并非所有类型的遥测数据对确定问题根源或理解其对用户体验的影响都具有同等价值。结果是团队耗费大量时间在多个解决方案中挖掘答案,费力解读遥测数据,而本可立即运用专业知识解决问题。

然而,通过单一可信数据源,团队能更快获得答案并解决问题。

单一数据源的重要性

企业需要单一数据源来实现应用基础设施的全局可观测性,并精准定位性能问题的根本原因。当企业拥有能驾驭云端复杂性、捕获所有相关数据并通过人工智能进行分析的统一平台时,团队就能即时识别任何问题的根源——无论问题源于应用本身还是支撑架构。

统一数据源使团队能够:

  • 将海量遥测数据转化为切实答案,而非让IT团队拼凑来自不同来源的零散数据片段来理解事件全貌
  • 获取关键基础设施区域的上下文洞察——这些信息通过传统方式难以获取
  • 协同工作并进一步加速故障排查流程,增强的认知能力使组织能比使用传统监控工具时更快采取行动

让可观测性成为IT团队可操作且可扩展的资产

资源有限的团队要实现可观测性,必须能实时收集海量遥测数据并采取行动。实时响应可阻止影响业务的问题进一步扩散,甚至从源头预防问题发生。以下是团队实现可观测性可操作与可扩展性的方法:

1 理解上下文与拓扑结构

理解IT环境的上下文与拓扑结构,需要通过对应用程序和基础设施进行仪器化,识别每个实体之间的关系以及数十亿互联组件间的潜在依赖性。丰富的上下文元数据可生成实时拓扑图,帮助理解纵向贯穿整个堆栈的因果依赖关系,以及横向贯穿服务、进程和主机的依赖关系。

2 实施持续自动化

通过持续自动发现、监控和基准化每个系统组件,IT工作重心将从手动配置转向增值创新项目,从而优先理解关键要素。可观测性由此实现“常驻”与可扩展,资源有限的团队得以以更少投入实现更多价值。

3 构建真正的AIOps

通过深度AI驱动的故障树分析结合代码级可视化,团队无需耗时的人工试错即可自动定位异常根源。基于因果关系的AI还能自动检测异常变更点,发掘团队未察觉或未监控的“未知未知”。这些可操作洞察为DevOps和SRE团队提供更快速精准的响应能力。

4 构建开放生态系统

开放生态系统将可观测性扩展至外部数据源,例如由Dynatrace、谷歌和微软等厂商主导的开源项目OpenTelemetry。OpenTelemetry为提供拓扑映射、自动发现与监控工具的平台扩展了遥测数据采集能力,并为大规模可观测性提供可执行的解决方案。

5 运用人工智能

基于AI驱动的解决方案能真正实现可操作性,解决云复杂性带来的挑战。可观测性解决方案可轻松解析来自多源、高速涌现的海量遥测数据流。通过统一数据源,团队能在应用性能下降前快速精准定位问题根源;若故障已发生,则可加速恢复进程。

高级可观测性通过在无服务器平台、Kubernetes环境、微服务及开源解决方案中实现端到端分布式追踪,进一步提升应用可用性。团队可全面洞察请求从发起到完成的全过程,主动识别应用性能问题,并深入理解终端用户体验。即便组织为支持未来增长而扩展应用基础设施,IT团队仍能快速响应关键问题。

实现全栈可观测性

您不应耗费数月乃至数年时间自行开发工具,或测试仅能解决可观测性部分难题的多种供应商方案。您需要的是能让所有系统和应用程序实现可观测性、提供可操作答案、并快速创造技术与商业价值的解决方案。

Dynatrace的高级可观测性解决方案在单一平台上整合所有功能,助力企业驾驭现代云复杂性并加速转型。如今,将全面可观测性纳入每次云迁移至关重要。Dynatrace将此理念称为云端正确之道

免费获取电子书《升级至高级可观测性:云原生环境中的解决方案》,了解高级可观测性如何在云原生环境中为您提供可操作的答案。