可观测性的三大支柱:统一的日志、指标和痕迹
了解遥测信号,以做出更优决策、提升性能并改善客户体验
.jpg)
多年来,遥测信号已发生重大演变,稍不留神就可能错过关键发展。事实上,许多关于可观测性的传统认知都需要更新迭代。如果您的可观测性方案未考虑当前遥测技术发展现状,或许该考虑升级了。随着技术进步、系统复杂度提升以及监测方法的革新,软件系统的监测与可观测性已历经多个发展阶段。
数据始终是这一切的核心。遥测技术的发展与计算技术的演进密不可分。当数据需求从机械性能指标扩展为业务绩效指标(或多个指标)时,遥测信号也随之进化。计算环境已发展为分布式云架构,监测实践也必须同步演进,以应对这些复杂架构和庞大数字环境的挑战。
由此得知:可观测性——不仅能够观察环境,更能深入理解环境的能力。
什么是可观测性的三大支柱?
三个遥测信号构成了可观测性的基础支柱 :指标、日志和追踪。但对于现代可观测性而言,这些支柱可能还不够。因此,我们提出了第四个新支柱:性能分析。
指标、追踪、日志和性能分析就像齿轮,让您正确实施可观测性——监测性能和生产率。它们最终会转化为有利于盈利的可行见解。这些要素之所以是基础是有原因的。如果理解有误,一切努力都将付诸东流。让我们深入解析。
什么是指标?(或者说,正在发生什么?)
指标是从硬件、应用软件和网站等各种来源收集的原始数值数据,用于测量“已知的已知因素”。它们提供有关资源使用、性能和用户行为的信息。指标是监测最原始的遥测信号,可分为以下几种类型:
主机指标:CPU、内存和磁盘使用率
应用程序指标:响应时间、错误率和请求率
网络性能指标:吞吐量、运行时间、延迟、可用性等
服务器池指标: 扩展调整指标、运行实例数和实例总数
外部依赖性指标:服务状态、响应速度、可用性和错误率
这些指标对于设置警报、警告和错误条件阈值至关重要。它们帮助团队全面监控系统和网络性能,并在问题出现时及时识别。通过这种方式,指标为监测提供了被动响应机制。
什么是日志?(为什么会这样?)
日志是来自基础设施、应用程序、网络和系统的结构化和非结构化数据,由与特定事件相关的时间戳条目组成。不同类型的设备和系统都会生成日志:
网络设备
操作系统
应用程序
IoT 设备
第三方应用程序
每种设备都会生成自己的日志类型,无论是记录连接尝试、错误和配置更改等事件的系统日志,还是记录软件变更、CRUD 操作、应用身份验证等内容的应用程序日志。由于日志来源众多(考虑贵组织运行的设备、应用程序和系统的数量)、格式和时间戳的不一致,再加上请求量、使用量和流量的增加导致日志数据量激增,日志存储变得异常复杂。
日志的功能已从最初主要用于故障排除,演变为如今承担多种角色,例如记录用户操作、优化系统和网络性能,以及为安全监测调查提供数据支持。在调试问题和事件时,IT 从业者会通过日志来定位和修复问题。尽管日志本身灵活且信息丰富,但大部分内容无关紧要,会产生大量噪音,而且日志数据通常孤立存储,缺乏内在关联。
什么是追踪?(它发生在哪里?)
追踪是从用户视角展示应用程序的第一手信号,它记录了用户在使用应用或服务时执行的操作。分布式追踪是一种监测请求的方法,可以追踪请求在分布式架构中从前端到后端再返回前端的完整路径。因此,对于依赖 Kubernetes 等复杂技术的分布式云原生应用而言,追踪必不可少。
通过整合孤立的数据,追踪有助于发现瓶颈,并对使用多个应用程序(如磁盘、网络和互斥锁)的应用程序进行调试和监测。追踪还 为主动式监测奠定了基础。例如,SRE、ITOps 和 DevOps 团队可以分析追踪数据,发现与任何给定问题相关的最有用指标或日志,从而在未来规避类似问题。
指标、日志和追踪各自提供不同的数据集,能够回答用户关于其系统和/或应用程序的疑问。但若不对这些数据进行关联分析,用户就会面临各种盲区。此时,再多一类信息就能填补这个空缺。于是,遥测信号演进的下一步登场:性能分析。
什么是性能分析?
性能分析是与代码性能问题相关联的堆栈追踪集合,反映了特定堆栈追踪的出现频率。它比其他信号提供更深层的见解,能识别内核层和用户空间层中与数据结构、内存分配及代码可见性相关的隐蔽问题。收集和分析性能分析数据的行为被称为性能分析。
性能分析提供了前所未有的广度和深度可见性,使您能够发现系统中的未知的未知问题。正因如此,它成为了实现全系统可视化的最后一块拼图。这就是我们将它列为可观测性第四大支柱的原因。
如需了解有关性能分析的更多信息,请访问 Elastic 为 OpenTelemetry 提供的通用性能分析代理。
可观测性与遥测信号的关系
遥测信号是可观测性的基础。通过收集、分析和可视化遥测信号来理解系统内部状态,才能实现可观测性。
第一阶段:基础监测与可观测性
在云计算出现前,监测是手动、本地化且受限的。随着计算机从专业商业领域(没错,50 年前计算机还只是小众办公设备)普及到家庭和办公室,监测也逐步发展为关键的 IT 实践,也是实现可观测性的第一步。
为应对服务器内和网络内流通数据的增长,IT 工程师开发了自动化检测的监测工具。随着开源监测工具的出现,基础网络和桌面监测从本地转向基于Web。如今,遥测信号已超越单纯的运维监测和本地流量统计——它们已成为关键的业务指标,这正是您现在应该看待指标、日志和追踪的方式。用户能否顺畅完成在线购买?连接速度如何?是否发生过数据泄露?这些问题的答案通过客户体验和满意度直接影响盈利。
随着网站开始接收客户数据,安全监测已成为任何监测解决方案中日益重要的组成部分。
第二阶段:应用程序监测和可观测性
为了提高可扩展性,开发人员从单体应用程序转向面向服务的架构,再到微服务和无服务器架构。
从紧耦合组件转向模块化组件,同时提高应用程序的灵活性 ,以便开发人员能够快速扩展,这意味着监测所需的可观测信号大幅增加。不仅需要监测基础架构,还需要监测应用程序本身,这使得响应时间、吞吐量和错误率等指标也加入了有效监测所需的遥测信号列表。应用程序性能监测 (APM) 由此成为一套新的必备方法和工具集,并将对可观测性至关重要。
第三阶段:云端监测和可观测性
向云原生技术的转型增加了监测实践的复杂性,正如应用程序开发模式的演进一样——遥测信号的数量和种类持续增长。
在分布式架构中,需要新的遥测信号来确保企业满足客户对快速、无缝且安全的在线体验的期望。此时,我们介绍了三大指标:度量、日志和追踪。这些信号可捕捉操作系统及其应用程序的底层活动,共同助力企业实现现代可观测性。
第四阶段:面向可观测性的遥测信号演进
微服务、无服务器、云原生。在数据驱动的世界里,了解驱动数据的数据至关重要。从实现盈利目标到生产率目标,指标、日志和跟踪都是运营链中的环节——它们包含了企业实现 SLA 所需的数据。
虽然指标、日志、追踪以及现在的性能分析数据在监测实践中都发挥着至关重要的作用,但手动查看这些数据以进行调试即使不是不可能,也效率低下。虽然自动化减轻了部分压力,但也产生了大量告警噪音。多样化的数据类型和来源也使得信息流管理及关联分析(以获取可行见解)变得更加困难。
于是,我们再次回到数据本身(尽管从未离开过它)来讲述这个故事。由于团队长期处于“疲于追赶”的状态,监测必须演进以满足海量数据涌入的需求,并解决与业务绩效紧密关联的信息获取难题。解决方案?统一遥测数据平台。
现代可观测性
现代可观测性是通过观察分布式系统的整体行为来理解其内部状态的方法。一个有效的现代可观测性解决方案将指标、日志和追踪统一在一个遥测平台上,使 IT 从业者能够全面了解其技术环境,并生成影响系统弹性和生产力的可行见解。
凭借强大的数据和信息处理能力,统一遥测数据平台需要存储尽可能多的数据,以便在需要时提取见解和分析结果。因此,有效的现代可观测性解决方案既支持主动调查,也支持被动响应。通过关联数据(指标、日志、追踪和性能分析),团队能够处理“已知的已知”问题,并发现“未知的未知”问题。换句话说,成功的现代可观测性解决方案让团队能够快速回答“为什么”。
那么,如何实现现代可观测性?考虑采用开放标准和 OpenTelemetry 来组织并分析数据。OpenTelemetry 帮助 SRE 以一致(开放标准)的数据格式生成可观察性数据,便于分析和存储,同时最大限度地减少供应商数据类型之间的不兼容性。大多数行业分析师认为,OpenTelemetry 将在未来五年内成为可观测性数据的事实标准。在所有遥测信号中使用一致的数据标准,进行统一的数据收集,这意味着您的可观测性方案将经得起未来考验。从更广泛的意义上讲,您还需要:
建立基准:为所有遥测数据确保格式和数据的一致性。
过滤数据:为最终用户消除供应商数据的不一致性。
整合工具:确保您有一个总体的可观测性战略。
遥测数据有多种形式——云原生应用生成一类数据,而无服务器环境或虚拟机则生成另一类数据。此外,这些数据的生成速度极快。因此,实现可观测性意味着统一数据。这确保了相关、准确且快速的见解。
遥测信号的未来在于可预测性
这是可以预见的:随着技术环境的发展,确保系统优化运行和资源高效利用所需的遥测信号也将不断演进。如今,遥测信号被接入复杂的系统,这些系统利用 AI/ML 提供预测性见解和自动化响应。这种趋势将会持续下去。
庞大的分布式环境意味着监测变得困难,换句话说,效率低下。因此,监测工作必须扩展到可观测性领域。为实现可观测性,组织正将监测工具整合到统一平台上,以缓解压力并获得系统性能的整体视图。基础性能指标对于故障排除和优化仍然至关重要,而迭代方法有助于提高应用程序的弹性。通过整合孤立的数据,组织可以从被动监测转向主动监测,同时依赖实时和历史遥测数据。
随着生成式 AI 的兴起,企业比以往任何时候都更加感受到确保安全系统安全的压力。因此,将安全信号集成到可观测性框架中变得越来越重要,重点是实时威胁检测和响应。随着 生成式 AI 技术的发展,我们很可能会看到由高级自动修复能力驱动的自愈系统。
但在解锁这些更高层级之前,组织都必须通过采用开放标准建立强大的数据基础来奠定基础 ——毕竟,唯一不变的就是变化。谁会愿意被供应商绑定呢?
本文中描述的任何功能或功能性的发布和时间均由 Elastic 自行决定。当前尚未发布的任何功能或功能性可能无法按时提供或根本无法提供。