背景
为了快速适应业务变化,聚焦业务迭代,各大厂商都进行了分布式架构的升级改造。特别是近几年,随着微服务与云原生的流行,分布式系统的规模愈发庞大,内部服务之间的调用也越来越复杂。
然而,引入分布式架构的同时,也带来相应的稳定性问题。各项服务的开发人员、开发语言和部署节点等情况很可能各不相同,当分布式系统整体出现异常或者性能瓶颈的时候,依靠传统的指标监控和日志排查已经很难快速定位到出问题的地方。因此当下分布式系统对可观测性提出了更高的要求,需要能够解决以下痛点:
- 如何动态的展示各服务之间的调用链路?
- 如何快速定位故障?
- 如何分析性能瓶颈并加以调优?
分布式链路追踪系统
基于上述痛点,分布式链路追踪系统应运而生,其目的在于通过洞察分布式服务之间的相互调用,自动发现系统存在的稳定性隐患,从而为 SRE & 研发 定位风险提供有效的数据支撑。分布式链路追踪可以通过以下两块内容完整还原一整条调用链路:
- Trace ID: 代表唯一一次请求的 ID,此 ID 一般由集群中第一个处理请求的系统产生,并在分布式调用下通过网络传递到下一个被请求系统。
- Span: 代表了本次请求的完整信息,包括调用是否成功,调用类型,调用耗时等等。其中最核心是Span ID,代表了本次请求在整个调用链路中的位置或者说层次。
同时,基于链路聚合可以产生站点内部流量的全局视角,形成网络拓扑。
分布式链路追踪系统近年来发展迅速,业内也涌现出了一些开源项目和框架,并且为了实现各项目和框架的接口的统一,发展出了 OpenTracing 与 OpenTelemetry 等标准。通过链路标准的制定和推广,有利于用户通过一套数据采集、处理、导出流程,轻松对接多种云厂商,避免vendor锁定,有效的降低了对接和使用的成本。
BOS一直以来致力于为用户提供无缝的可观测能力,持续拥抱可观测性标准,作为OpenTelemetry项目的重要贡献者,率先在业内提供了完整的异构应用 OpenTelemetry 链路接入方案,并已经在众多机构中成功落地。
产品能力
业务智能可观测服务 BOS(Business-Intelligent Observability Service)是基于蚂蚁大规模技术风险防控实践自研的一套运维平台,具有业务数字化运维、全息可观测定位、智能场景化防控、一体化数据分析和大规模实践等产品特性,将业务场景可视化和数据业务语义化,赋能云上/云下的异构应用开箱即用的智能可观测能力,为业务提供全方位的稳定性保障,建设业务观测新范式,让稳定更有力量。
BOS的分布式链路追踪系统提供了以下丰富的产品功能,致力于帮助用户定位和解决微服务架构下的性能问题:
●应用调用拓扑及详细性能指标
○根据链路数据动态生成,帮助用户梳理微服务架构下各应用之间的调用关系。
○根据调用耗时,调用错误率等性能指标,自动定位和标注异常应用和异常调用关系,帮助用户快速定位故障。
●链路数据查询
○支持多维度的查询条件,例如超过多少耗时,调用是否失败,具体的调用接口和方法等等,准确定位到感兴趣的调用关系,进而跳转到具体而详细的链路详情展示。
●链路详情展示
○通过多种展现方式,例如树状图,拓扑图、时序图等,帮助用户观测到单条链路的完整调用关系。
○根据每次调用的成功与否以及耗时,自动标注出整条链路中异常或者潜在性能瓶颈的调用,帮助用户快速定位具体的单次调用,通过详尽的单次调用详情,助力用户进行应用调优。
○在链路详情中同时打通了与监控和日志数据的关联ÿ