在Uber使用Jaeger、M3和XYS优化可观性

0.
在Uber使用Jaeger、M3和XYS优化可观性

当一段代码出现错误时,工程师希望立即知道错误的所有相关细节,这样他们就可以立即着手修复故障。

然而,随着技术的先进,测量系统指标并发送出警报才会变得更加复杂:许多组织处理数百万或每天的数十亿个请求,并且其系统分布,这意味着他们依赖于复杂的微服务Web进行操作。我们使用的是优步的情况4000年microservices为多方面和经常相互依存的服务供电。

优步的可观察性团队有助于我们使我们的微服务架构能够以规模可靠。我们使用的三个可观察性工具jaeger.,在UBER,XYS,内部采样服务中创建的开源分布式跟踪系统,以及M3,我们的开源度量标准堆栈。所有三个对优步的可观察性工作流程很重要,并帮助全球用户提供服务。

下面,我们将重点介绍三个视频,包括我们的可观测性工程师对这三个重要工具的介绍,以及其他工程师可以从这些工具中学到什么:

Jaeger:在优步分布追踪

可观察性软件工程师Bill Westlin介绍了Jaeger,优步开源分布式追踪系统的基础优步公开峰会2018年在旧金山。他描述了他的团队建立Jaeger以及他们如何做到的动机。账单指出,传统的指标表明系统出现问题,但他们并没有提供任何解释性权力。日志提供了很多信息,但是通过并发请求和多个主机,可以几乎不可能将日志与给定的故障相关联,如缺少语境。相比之下,Jaeger的分布式跟踪跟随一个服务的请求到另一个服务,构成发生的事情的叙述以及出现问题(或右)。这使得能够更轻松地定位导致并解决真实问题。接下来,账单描述了Jaeger的体系结构,包括其后端组件,可插拔存储,Web UI,异步摄取,索引实践等。他通过描述jaeger的地平线上的内容,例如不完整的跨度支持和数据分析平台,得出结论。

XYS:抽样策略

在2018年的一次Uber聚会上,Jaeger团队工程师Won Jun Jang首先介绍了分布式跟踪的基础知识,并讨论了与Uber分布式跟踪系统相关的各种采样策略。他解释说,Jaeger可以防止工程师为了解决一个技术问题而陷入依赖的兔子洞;其可视化的轨迹和直观的UI使诊断问题变得简单。工程师也可以使用这些强大的Jaeger跟踪来整体评估他们的服务和系统。然而,当考虑如何对这些信息进行抽样时,这就变得更加棘手了。Won讨论了速率限制、概率、自适应和系统抽样的优点和缺陷。接下来,他演示了XYS(检查你的服务),这是Uber的内部工具,用于使用Jaeger跟踪样本来推断延迟、流量和依赖数据。最后,他展示了XYS如何允许用户比较有代表性的样本来理解数据中的异常并解决系统问题。

M3:优步的指标

工程师Celina Ward讨论了M3,优步的开源指标栈,以及m3db.,优步的开源分布时间序列数据库,在优步公开峰会索菲亚2019。首先,她定义了高维度量,即随着时间的推移追踪的数据,这些数据包含许多不同的方面(在优步的例子中,这可能是它们相关的路线、它们发生的地区、它们的状态代码等)。她解释说,高维指标可能昂贵且难以使用,尤其是在优步的规模下,因为一次排放可能导致1亿个独特的时间序列。然而,它们通常对业务和软件开发至关重要。这就是Celina的团队创建M3及其附带数据库的原因。这些资源使优步能够存储和利用高维指标,而无需花费巨资或付出巨大努力。她接着提供了一个案例研究这些工具在Uber是如何工作的,讨论了它们的历史,描述了未来的发展目标,并为使用M3和M3DB的其他组织提供了建议。

查看关于Jaeger的其他文章M3要了解有关这些技术的更多信息 - 并在此工具推进时留意XYS上的未来文章!

有兴趣在优步推进未来的可观察性吗?在我们的团队中申请角色!

评论

没有帖子展示