由于工作的需求,特地去研究下可观测性技术,因此通过本文阐述下自己对可观测技术的理解。本篇只分析什么是可观测性、为什么需要可观测性以及可观测性收集哪些数据。后续将完成如何关联各种数据,如何呈现和展示以及如何分析这些数据。
什么是可观测性
随着云计算、微服务和分布式系统的普及,oberservibility逐渐走进了大众的视野。似乎可观测性是个新兴的概念,然而在它却很久之前就出现在了控制理论中。在控制理论中他被定义为:衡量一个系统的内部状态可以从其外部输出的知识中推断出的程度 (observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs)。对比于监控,监控主要包括白盒监控和黑盒监控,可观测性则更接近于白盒监控。一般来说“监控告诉我们系统的哪些部分是工作的,可观测性则告诉我们那里为什么不工作了”。他能提供足够的信息帮助我们定位问题发生的原因,因此可观测性主要关注这几个方面:
- 收集哪些内容。
- 如何关联这些内容。
- 如何更方便的呈现和展示。
- 如何分析这些数据。
为什么需要可观测性
简单的系统相对组件较少,通过监控CPU、内存、网络等加之日志分析尚且可以定位出系统问题发生的原因。但是随着云原生、微服务技术、分布式系统的不断发展,一个完成的系统所需的组件越来越多、而且其依赖关系也从较简单的树形结构更多的向网状结构发展,涉及的团队也成倍的增长,定位一个简单的问题甚至都需要跨团队的合作,光是协调各个团队共同定位问题就已经较为困难了(主要是各种扯皮),更别提整