可观测性:跟随面包屑线索
1 引言
云原生系统的快速发展带来了基础设施配置、部署和软件管理的复杂性。随着应用程序架构变得更加具有弹性,理解云环境的底层基础设施(包括故障模式和瓶颈)变得至关重要。对应用程序栈的可见性变得更加关键,尤其是在当今应用程序中新增的众多组件和设计变更的情况下。
在本章中,我们将介绍可观测性的概念,并解释为什么在当今的云原生世界中它是必要的。你将了解可观测性的三个支柱——日志、指标和追踪——并获得它们如何协同工作以创建可观察系统的洞察。我们还将研究各种知名的云原生工具,这些工具可用于创建可观察系统,并展示可观测性是监控的超集。最后,我们将展示如何利用Azure作为云平台,在应用程序、底层基础设施和网络堆栈中获得可观测性。
2 可观测性的概念
2.1 控制理论中的可观测性
首先需要理解的是“可观测性”这个词本身。可观测性这个术语起源于控制理论的数学领域,该领域主要研究如何使用带有系统反馈的控制器来控制动态系统。在控制理论中,可观测性是指从系统外部输出的知识中测量系统内部状态的能力。在软件工程中,可观测性意味着从应用程序的输出中了解其确切状态。通过设计你的应用程序和基础设施使其可观察,你将能够追踪问题发生的原因。
2.2 日志、指标和追踪
可观测性的三个支柱是日志、指标和追踪。这些支柱共同工作,使我们能够深入了解系统的运行情况。
-
日志 :日志记录了系统中发生的事件,提供了对特定时间点系统行为的详细视图。日志可以帮助我们了解系统的行为模式和异常情况。
-
<