
通过事件分析实现可观测性
|
79
这不仅是因为你现在正在收集的事件数据使你能够调试未知条件。这是你处理探测和调
试行为的方式。
在
Honeycomb
,我们花了很长时间才弄清楚这一点,即使我们已经构建了自己的可
观测性工具。作为工程师,自然倾向于凭借对系统了解的直觉与经验去处理问题。在
Honeycomb
早期阶段,在我们学会如何摆脱从已知条件调试之前,可观测性帮助我们做
的只是跳到要问的正确的高基数问题上。
如果我们刚发布了一个新的前端功能并且担心性能,我们会问:“它对我们的
CSS
和
JS
资产大小有多大影响?”刚刚自己编写了工具,我们知道通过计算最大
css_asset_size
和
js_asset_size
来解决这个问题,然后通过
build_id
分解性能。如果我们担心开始
使用我们服务的新客户,那么我们会问:“他们的查询速度快吗?”然后我们就知道按
team_id
过滤并计算
p95
响应时间。
但是,当你不知道哪里出了问题或从哪里开始查找,并且对可能发生的事情一无所
知时,会发生什么?当你完全不知道调试条件时,你必须改为从第一性原理(
first
principle
)进行调试。
8.2 从第一性原理调试
如前两章所述,第一步是收集遥测数据作为事件。实现可观测性还需要你通过以强大而
客观的方式分析数据来解锁对系统的新理解。可观测性使你能够从第一性原理调试你的
应用程序。
第一性原理是关于系统的基本假设,它不是从另一个假设推导出来的。在哲学中,第一
性原理被定义为认识事物的第一基础。从第一性原理进行调试基本上是为了科学地理解 ...