可观测性解决方案的设计目标与评估
一、可观测性解决方案的设计目标
在设计可观测性解决方案时,有三个关键方面需要考虑,这些方面超越了具体用例,着重于解决方案的价值获取以及价值与成本的关系。以下是对这三个方面的详细阐述:
1. 涵盖每一个事务 :一个优秀的可观测性解决方案应能观测到所有数据,即使是最罕见的事件也不例外。例如,不常出现的错误或小客户群体的行为。采用事务采样的解决方案可能会错过这些虽罕见但有价值的事件。
2. 不受基数问题影响 :若用户能对数据的任意子集进行行为询问和比较,那么该可观测性解决方案就具备抗基数问题的能力。基数指集合中不同元素的数量,在可观测性领域,它表示数据点上不同标签(或标签)的数量。基数问题意味着管理和查询带有大量不同标签的数据时会面临挑战。例如,能否比较在不同主机上运行的服务实例的性能数据,能否按软件版本细分性能数据,以及能否比较不同客户群体甚至单个客户之间的性能等。在提出这些问题之前就对数据进行聚合的解决方案,可能会错失回答这些问题的机会;而不进行聚合则可能会产生高昂的资源成本。
3. 成本与业务价值成比例增长 :如果可观测性解决方案的每笔交易成本在交易量增加时保持不变,那么其成本就与业务价值成比例增长。在现代分布式系统(如基于微服务或无服务器架构)中,开发人员在添加新服务或功能时可能会增加新的可观测性数据源,即使交易量保持不变,这也会产生更多数据,从而增加成本。
二、评估可观测性的三大支柱
基于上述设计目标,我们可以对可观测性的三大支柱(指标、日志和分布式追踪)进行评估,具体如下表所示:
| 支柱 | 涵