
11
第 1 章
什么是可观测性
在软件开发行业,可观测性(
observability
)这个话题已经引起了很多人的兴趣,并且经
常出现在各种热门研讨会的话题列表之中。但是,当一个热门的新话题从引起人们的兴
趣转变为人们愿意真正应用它时,事情就变得不一样了。如果不能深入洞察和理解一个
名词真正的细微含义,就可能会导致大量误解。本章着眼于术语“可观测性”的数学起
源,同时查看软件开发者们如何把这个方法论应用到生产软件系统中。
我们还将带领大家了解在生产软件系统中引入可观测性的必要性。调试软件应用程序内
部状态的传统实践方式是为传统系统设计的,那时的系统比今天的系统要简单很多。随
着系统架构、基础设施技术和用户需求的不断发展,我们用来调试的软件工具却几乎没
有发生变化。总的来说,今天许多工程团队仍然在沿用
20
年前的早期(
nascent
)监控工
具来进行调试实践
—
尽管他们当前管理的系统要复杂得多。当传统的工具和调试方法
无法胜任快速发现隐藏的、难以定位的问题的任务时,可观测性工具也就应运而生了。
本章将帮助你理解什么是“可观测性”、如何确定一个软件系统是否“可观测”
(
observable
)、为什么需要可观测性,以及如何使用可观测性来发现其他方法无法发现的问题。
1.1 可观测性的数学定义
“可观测性”一词是由工程师鲁道夫
·
E.
卡尔曼(
Rudolf E. Kálmán
)在
1960
年创造的。
从那以后,它便在不同的领域有了不同的含义。在讲述现代软件系统的可观测性定义之
前,让我们先了解一下广义的可观测性。
1
在
1960
年的论文中 ...