目录摘要1.介绍2. Dapper的分布式跟踪2.1 跟踪树和span2.2 植入点2.3 Annotation2.4 采样率2.5 跟踪的收集2.5.1 带外数据跟踪收集2.6 安全和隐私考虑3. Dapper部署状况3.1 Dapper运行库3.2 生产环境下的涵盖面3.3 跟踪Annotation的使用4. 处理跟踪损耗4.1 生成跟踪的损耗4.2 跟踪收集的消耗4.3 在生产环境下对负载的影响4.4 可变采样4.5 应对积极采样(Coping with aggressive sampling)4.6 在收集过程中额外的采样5. 通用的Dapper工具5.1 Dapper Depot API5.1.1 DAPI在Google内部的使用5.2 Dapper的用户接口6. 经验6.1 在开发中使用Dapper6.1.1 与异常监控的集成6.2 解决延迟的长尾效应6.3 推断服务依赖6.4 不同服务的网络使用率6.5 分层和共享存储系统6.6 Dapper的救火能力(Firefighting)7. 其他收获8. 相关产品9. 总结干货分享,感谢您的阅读!论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》介绍了谷歌开发的大规模分布式系统跟踪基础设施Dapper。Dapper旨在通过提供跨多个服务和计算机的详细跟踪信息,帮助开发人员理解和调试复杂的分布式系统。论文讨论了Dapper背后的动机、其架构以及在诊断性能问题和优化分布式系统方面所提供的实际好处。本文作为回顾经典,重新学习,翻译的同时加入一些现有的理解。摘要现代互联网服务通常是作为复杂的、大规模的分布式系统实现的。这些应用程序由软件模块集合构建而成,这些模块可能由不同的团队开发,可能使用不同的编程语言,并且可能跨越多个物理设施上的许多千台计算机。在这样的环境中,帮助理解系统行为并对性能问题进行推理的工具是非常宝贵的。 在这里,我们介绍了Dapper的设计,这是谷歌的生产分布式系统跟踪基础设施,并描述了我们是如何实现低开销、应用级透明度和在非常大规模系统上的普遍部署这些设计目标的。Dapper与其他跟踪系统,特别是Magpie和X-Trace,分享概念上的相似之处,但在某些设计选择上,特别是使用采样和将仪器化限制