分布式追踪:提升应用性能与业务价值
1. 可观测性工具的选择
在选择可观测性工具时,不应简单询问“这是一个好的指标工具吗?”(或好的日志工具、好的追踪工具),而应问“这是一个好的可观测性工具吗?”这意味着要接受对这些工具更广泛的定义,尤其是分布式追踪。与指标和日志不同,分布式追踪假定我们要观测的是分布式系统。任何用于分布式系统的可观测性工具都应提供应用程序的整体视图,分布式追踪在应用程序的开发和运行中可发挥更大作用。
我们应从更广泛的角度看待追踪,它不仅是像谷歌的 Dapper 那样的工具,还应能利用多种信息源,并以对开发者和运维人员及时且经济高效的方式将它们结合起来。例如,利用指标数据了解应用程序外部的可能原因,从追踪中导出指标以向运维人员展示应用程序行为的变化,利用日志数据作为追踪的另一个信息源,并向用户展示特定事件数据以解释发生了什么。
2. 提升基线性能
在现代软件应用中,生产过程对生产成本和产品本身有深远影响。生产成本主要与计算资源和其他基础设施相关,软件的交付方式也会影响用户体验。我们可以利用分布式追踪来降低成本并改善用户体验,尤其关注提升基线性能,即软件在数周、数月或季度内的表现。了解基线性能有助于有效规划未来几周或几个月的工程工作,增加产生积极影响的机会。
2.1 性能测量
对于面向用户的应用程序,测量对用户有影响的性能至关重要。请求延迟是这些应用程序的关键指标,且应尽可能在靠近用户的地方测量延迟。具体操作步骤如下:
1. 在用户的浏览器或移动应用中测量延迟,这比在负载均衡器处测量更好,能看到网络对性能的影响。
2. 测量用户交互与新结果在屏幕上呈现之间的延迟,这样可以看到对后