可观察性定义

依据其他学科成熟稳定的概念迁移至软件工程领域内,将另一领域的经验平滑迁移。

从控制理论到动力系统,从传统监控到可观察性的平滑过渡。

系统控制

  • 控制理论:工程学与数学的跨领域分支,主要处理有输入信号的动力系统的行为,是一个用于研究如何调整动态系统特性的理论。

  • 控制理论的主题包含:稳定性、可控制性和可观察性、控制规格及其他。

  • 系统的分类:线性系统控制、非线性系统控制及分散式系统。

  • 控制理论的的可观察性:系统可以由外部输出推断出内部状态的程度,最早由匈牙利裔工程师鲁道夫·卡尔曼提出。

简单讲,软件工程借鉴其他较为成熟领域的相关概念,以一种较为成熟、标准化的方式在软件构建的世界内将其展示出来,继而可观察性也被引用出来。但却赋予了不一样的概念。

监控

  • 定义:对行为、活动、可变化的信息的一种持续性关注,从而主导、影响和管理其行为。

  • 方式:依据其持续性的行为定义为固定的模型,从而分析失败的原因固定化其解决方案。

  • 分类:快速确定内部原因的白盒监控和关注于产生问题后现象的黑盒监控。

  • 关注点:以第三视角关注运维及相关基础设施的运行情况,核心点并非是应用及研发相关,而是实际的基础设施。

  • 需要增强:分布式系统下基础设施与内部组件及业务应用之间的关联和推断。

可观察性

  • 定义:仅仅依赖一种系统外部数据,即可通过外部数据确定系统内部发生的任何问题,而不需要再引入新的代码或者新的工具。

  • 背景:复杂的云上环境及分布式系统下的复杂性和动态性。

  • 三大支柱:

    • Metrics:时间间隔内测量的数据的数字表示,支持较长时间和更容易的查询。

    • Logs:提供比Metrics更为仔细的事件数据,同时具备不可变和带有时间戳的记录。

    • Traces:分布式事件端到端,并且是一种具备延续性和因果性的有向无环图。

  • 特性:关注应用、主动暴露和数据相关关联。

区别和关联

  • 监控确定问题出现的时间和问题本身,可观察性更注重产生问题的具体原因。

  • 监控仅能提供产生的问题本身及最终的影响,可观察性允许更多新的不同内容的提出。

  • 依据控制的范围和全面性可将监控定义为可观察性的子集和关键措施。

最后更新于