Jaeger - Uber 的分布式追踪系统


MIT
跨平台
Google Go

软件简介

Jaeger是Uber的分布式跟踪系统。

大多数现有的Zipkin兼容仪表库支持概率采样,但他们希望在初始化时配置采样率。这种方法在大规模使用时导致几个严重问题:

  • 给定的服务几乎没有洞察采样率对跟踪后端的总体流量的影响。

  • 在Uber,商业交通展示强烈的每日季节性; 更多的人在高峰时段乘坐。固定采样概率对于非高峰业务来说太低,而对于高峰业务又太高。

Jaeger客户端库中的轮询功能旨在解决这些问题。通过将关于适当采样策略的决定移动到跟踪后端,我们免除服务开发人员猜测适当的采样率。这还允许后端在流量模式改变时动态地调整采样率。下图显示了从收集器到客户端库的反馈循环。

当前的Jaeger架构:在Go中实现的后端组件,支持OpenTracing标准的四种语言的客户端库,基于React的Web前端以及基于Apache
Spark
的后处理和聚合数据管道。