分布式追踪实践
Austin Parker, Daniel Spoonhower, Jonathan Mace, Rebecca Isaacs
张翔, 刘征, 李捷 译
出版时间:2024年12月(预计)
页数:309(预计)
“对于那些刚接触分布式追踪的人来说,这是一本极好的入门读物,对于那些已经在使用分布式追踪的人来说,也是一本很好的参考书。”
——Alex Hidalgo
SRE工程师,Implementing Service Level Objectives作者

当前大多数应用程序都是以某种形式存在的分布式应用程序,要监控它们的健康情况和性能,需要一种新的方法。分布式追踪是一种分析、监控分布式应用程序(特别是那些使用微服务架构的应用程序)的方法。问题在于:要恰当的使用分布式追踪,可能会充满各种挑战。但这种情况可以得到改善。
通过本书,你将学到什么是分布式追踪,以及如何运用分布式追踪理解软件的运行情况。Lightstep 公司和其他公司的核心成员将指导你如何在代码中为追踪、收集数据埋点,这些由埋点产生的数据将转换为在运维中有用的关键信息。如果你要实现分布式追踪,这本书将告诉你,你需要哪些知识储备。
你将学到:
● 部署分布式追踪:埋点、收集数据、分析。
● 埋点的最佳实践:从你的服务中生成追踪数据的方法。
● 在使用采样或其他技术时,如何处理开销(或避免)问题。
● 如何使用分布式追踪改善基线性能以及快速缓解性能回归。
● 分布式追踪的未来。
  1. 前言
  2. 第1章 分布式追踪的问题
  3. 1.1 分布式追踪部署的组件
  4. 1.2 分布式追踪,微服务,Serverless,怎么办
  5. 1.3 追踪的收益
  6. 1.4 设定基调
  7. 第2章 埋点的本质
  8. 2.1 白盒vs黑盒
  9. 2.2 应用程序vs系统
  10. 2.3 代理vs库
  11. 2.4 传播上下文
  12. 2.4.1 进程间传播
  13. 2.4.2 进程内传播
  14. 2.5 分布式追踪的轮廓
  15. 2.5.1 亲近追踪的微服务和Serverless
  16. 2.5.2 在单体应用中追踪
  17. 2.5.3 在Web和移动客户端中追踪
  18. 第3章 开源的埋点处理:接口、库和框架
  19. 3.1 抽象埋点的重要性
  20. 3.2 OpenTelemetry
  21. 3.3 OpenTracing和OpenCensus
  22. 3.3.1 OpenTracing
  23. 3.3.2 OpenCensus
  24. 3.4 其他值得注意的格式和项目
  25. 3.4.1 X-Ray
  26. 3.4.2 Zipkin
  27. 3.5 互操作性和迁移策略
  28. 3.6 为什么使用开源埋点
  29. 3.6.1 互操作性
  30. 3.6.2 可移植性
  31. 3.6.3 生态系统与隐式可见性
  32. 第4章 埋点的最佳实践
  33. 4.1 追踪的示例
  34. 4.1.1 安装示例应用程序
  35. 4.1.2 添加基本的分布式追踪
  36. 4.1.3 自定义埋点
  37. 4.2 从何处着手 —— 节点和边缘
  38. 4.2.1 框架埋点
  39. 4.2.2 服务网格埋点
  40. 4.2.3 创建服务拓扑图
  41. 4.3 span包含哪些内容
  42. 4.3.1 有效命名
  43. 4.3.2 有效标记
  44. 4.3.3 有效记录日志
  45. 4.3.4 了解性能的注意事项
  46. 4.4 追踪驱动开发
  47. 4.4.1 使用追踪数据开发
  48. 4.4.2 使用追踪数据测试
  49. 4.5 创建埋点计划
  50. 4.5.1 识别埋点的应用场景
  51. 4.5.2 埋点的质量清单
  52. 4.5.3 了解何时停止埋点
  53. 4.5.4 理智且持续的添加埋点
  54. 第5章 部署追踪
  55. 5.1 在组织架构中采用分布式追踪
  56. 5.1.1 贴近你的用户
  57. 5.1.2 从中心着手:负载均衡器以及网关
  58. 5.1.3 利用基础设施:RPC框架和服务网格
  59. 5.1.4 可复用的采用
  60. 5.2 追踪器架构
  61. 5.2.1 进程内的库
  62. 5.2.2 边车和代理
  63. 5.2.3 收集器
  64. 5.2.4 中心化存储和分析
  65. 5.2.5 增量部署
  66. 5.3 数据来源、安全性和联合
  67. 5.3.1 前端服务的遥测数据
  68. 5.3.2 服务器端的遥测数据
  69. 5.4 总结
  70. 第6章 开销、成本、采样
  71. 6.1 应用程序开销
  72. 6.1.1 延迟
  73. 6.1.2 吞吐量
  74. 6.2 基础设施成本
  75. 6.2.1 网络
  76. 6.2.2 存储
  77. 6.3 采样
  78. 6.3.1 下限
  79. 6.3.2 策略
  80. 6.3.3 选择追踪数据
  81. 6.4 现成的ETL解决方案
  82. 6.5 总结
  83. 第7章 新的可观测性计分卡
  84. 7.1 定义三大支柱
  85. 7.1.1 指标
  86. 7.1.2 日志
  87. 7.1.3 分布式追踪
  88. 7.2 三大支柱的致命弱点
  89. 7.2.1 设计目标
  90. 7.2.2 评估三大支柱
  91. 7.2.3 三根管道(而非支柱)
  92. 7.3 可观测性的目标和活动
  93. 7.3.1 可观测性的两个目标
  94. 7.3.2 可观测性中的两个基本活动
  95. 7.3.3 新的计分卡
  96. 7.3.4 前路
  97. 第8章 改善基线性能
  98. 8.1 测量性能
  99. 8.1.1 百分位数
  100. 8.1.2 直方图
  101. 8.2 定义关键路径
  102. 8.3 改善性能的方法
  103. 8.3.1 单条追踪数据
  104. 8.3.2 偏差采样和比较追踪
  105. 8.3.3 搜索追踪
  106. 8.3.4 多模态分析
  107. 8.3.5 聚合分析
  108. 8.3.6 相关性分析
  109. 8.4 总结
  110. 第9章 恢复基线性能
  111. 9.1 界定问题
  112. 9.2 人为因素
  113. 9.2.1 (避免)相互指责
  114. 9.2.2 “压制”信使
  115. 9.2.3 移交事故
  116. 9.2.4 良好的事后总结
  117. 9.3 恢复性能的方法
  118. 9.3.1 与告警工作流集成
  119. 9.3.2 单条追踪数据
  120. 9.3.3 偏差采样
  121. 9.3.4 实时响应
  122. 9.3.5 怎样才算正常
  123. 9.3.6 聚合并分析相关根因
  124. 9.4 总结
  125. 第10章 我们实现目标了吗
  126. 10.1 分布式追踪:一段实用主义的历史
  127. 10.1.1 基于请求的系统
  128. 10.1.2 响应时间问题
  129. 10.1.3 面向请求的信息
  130. 10.2 著名的作品
  131. 10.2.1 Pinpoint
  132. 10.2.2 Magpie
  133. 10.2.3 X-Trace
  134. 10.2.4 Dapper
  135. 10.3 下一步
  136. 第11章 单个请求之外
  137. 11.1 聚合追踪数据的价值
  138. 11.1.1 示例1:网络阻塞会影响应用程序吗
  139. 11.1.2 示例2:API端点依赖哪些服务
  140. 11.2 组织数据
  141. 11.3 权衡
  142. 11.4 为聚合分析采样
  143. 11.5 处理管道
  144. 11.6 纳入异构数据
  145. 11.7 自定义函数
  146. 11.8 要点回顾与案例研究
  147. 11.8.1 聚合追踪数据的价值
  148. 11.8.2 组织数据
  149. 11.8.3 为聚合分析采样
  150. 11.8.4 处理管道
  151. 11.8.5 纳入异构数据
  152. 第12章 span之外
  153. 12.1 span成为主流的原因
  154. 12.1.1 可见性
  155. 12.1.2 实用主义
  156. 12.1.3 可移植性
  157. 12.1.4 兼容性
  158. 12.1.5 灵活性
  159. 12.2 为什么只有span还不够
  160. 12.2.1 是图而非树
  161. 12.2.2 请求间依赖
  162. 12.2.3 解耦依赖
  163. 12.2.4 分布式数据流
  164. 12.2.5 机器学习
  165. 12.2.6 底层性能指标
  166. 12.3 新的抽象
  167. 12.4 理清因果关系
  168. 第13章 分布式追踪之外
  169. 13.1 分布式追踪的局限性
  170. 13.1.1 挑战 1:预测问题
  171. 13.1.2 挑战2:完整VS成本
  172. 13.1.3 挑战3:开放式用例
  173. 13.2 其他类似分布式追踪的工具
  174. 13.3 Census
  175. 13.3.1 启发性示例
  176. 13.3.2 分布式追踪解决方案
  177. 13.3.3 标记传播和本地指标聚合
  178. 13.3.4 与分布式追踪对比
  179. 13.4 Pivot Tracing
  180. 13.4.1 动态埋点
  181. 13.4.2 反复出现的问题
  182. 13.4.3 工作原理
  183. 13.4.4 动态上下文
  184. 13.4.5 与分布式追踪对比
  185. 13.5 Pythia
  186. 13.5.1 性能回归
  187. 13.5.2 设计
  188. 13.5.3 开销
  189. 13.5.4 与分布式追踪的比较
  190. 13.6 总结
  191. 第14章 上下文传播的未来
  192. 14.1 横切工具
  193. 14.2 用例
  194. 14.2.1 分布式追踪
  195. 14.2.2 跨组件指标
  196. 14.2.3 跨组件资源管理
  197. 14.2.4 管理数据质量的权衡
  198. 14.2.5 微服务的故障测试
  199. 14.2.6 跨系统的强一致性
  200. 14.2.7 复制请求
  201. 14.2.8 流处理系统中的记录Lineage
  202. 14.2.9 审计安全策略
  203. 14.2.10 生产测试
  204. 14.3 公共主题
  205. 14.4 你需要在意这些内容吗
  206. 14.5 Tracing Plane
  207. 14.5.1 行李够用吗
  208. 14.5.2 键值对之外
  209. 14.5.3 编译BDL
  210. 14.5.4 行李上下文
  211. 14.5.5 合并
  212. 14.5.6 开销
  213. 14.6 总结
  214. 附录A 近年来分布式追踪的近况
  215. 附录B 上下文传播
  216. 参考文献
书名:分布式追踪实践
译者:张翔, 刘征, 李捷 译
国内出版社:中国电力出版社
出版时间:2024年12月(预计)
页数:309(预计)
书号:978-7-5198-9180-0
原版书书名:Distributed Tracing in Practice
原版书出版商:O'Reilly Media
Austin Parker
 
Austin Parker是Lightstep公司的首席开发者布道师。
 
 
Daniel Spoonhower
 
Daniel Spoonhower是Lightstep公司的联合创始人和CTO。
 
 
Jonathan Mace
 
Jonathan Mace是马克斯普朗克软件系统研究院的一名教员。
 
 
Rebecca Isaacs
 
Rebecca Isaacs是Twitter 公司的一名软件工程师,之前在谷歌和微软研究院工作。
 
 
本书封面上的动物是一只长鼻袋鼠(学名:Perameles nasuta),一种在澳大利亚东部雨林和林地沿岸狭长范围内发现的有袋动物。
长鼻袋鼠有棕灰色的皮毛和一条短尾巴,重约两磅,长约一英尺。寿命一般为5~6年。这些袋鼠在觅食时用它们有爪的脚趾和特有的鼻子挖出独特的圆锥形洞。它们在夜间觅食昆虫、真菌和植物,白天在浅浅的土洞中筑巢。长鼻袋鼠的袋口朝后,保护其幼崽不被挖出的泥土伤害。
2015年最后一次对长鼻袋鼠的保护情况评估时,当局将该物种列为最不值得关注的物种,但澳大利亚农业部、水利部、环境部发现它在2019~2020年的丛林大火后有灭绝的风险。
购买选项
定价:98.00元(预计)
书号:978-7-5198-9180-0
出版社:中国电力出版社