欢迎来到生活网

分布式追踪系统概述及主流开源系统对比(系统资讯)分布式追踪组件,

编辑:147小编      来源:147小编     

2024-06-29 09:57:55 

 

关注【搜狐技术产物】公众号,第一时间获取技术干货

导 读

分布式追踪系列文章来了!

本周推送为该系列的上篇,主要介绍了分布式追踪系统的原理、“可观察性” 的三大支柱、OpenTracing尺度,同时对当前主流的开源分布式追踪系统进行简单对比。

图片来源: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

随着应用容器化和微服务的兴起,借由 Docker 和 Kubernetes 等工具,服务的快速开发和摆设成为可能,构建微服务应用变得越来越简单。但是随着大型单体应用拆分为微服务,服务之间的依赖和调用变得极为复杂,这些服务可能是差别团队开发的,可能基于差别的语言,微服务之间可能是利用 RPC、RESTful API,也可能是通过消息队列实现调用或通讯。如何理清服务依赖调用关系、如何在这样的环境下快速 debug、追踪服务处理耗时、查找服务性能瓶颈、合理对服务的容量评估都酿成一个棘手的事情。

可观察性(Observability)及其三大支柱

为了应对这些问题,可观察性(Observability) 这个概念被引入软件领域。传统的监控和报警主要关注系统的异常情况和失败因素,可观察性更关注的是从系统自身出发,去展现系统的运行状况,更像是一种对系统的自我审视。一个可观察的系统中更关注应用自己的状态,而不是所处的机器或者网络这样的间接证据。我们希望直接得到应用当前的吞吐和延迟信息,为了到达这个目的,我们就需要合理主动袒露更多应用运行信息。在当前的应用开发环境下,面对复杂系统我们的关注将逐渐由点到点线面体的结合,这能让我们更好的理解系统,不但知道What,更能回答Why。

可观察性目前主要包罗以下三大支柱:

日志(Logging):Logging 主要记录一些离散的事件,应用往往通过将定义好格式的日志信息输出到文件,然后用日志收集步伐收集起来用于分析和聚合。目前已经有 ELK 这样的成熟方案, 相比之下日志记录的信息最为全面和丰富,占用的存储资源正常情况下也最多,虽然可以用时间将所有日志点事件串联起来,但是却很难展示完整的调用关系路径;度量(Metrics)Metric 往往是一些聚合的信息,相比 Logging 丧失了一些具体信息,但是占用的空间要比完整日志小的多,可以用于监控和报警,在这方面 Prometheus 已经基本上成为了事实上的尺度;分布式追踪(Tracing)Tracing 介于 Logging 和 Metric 之间, 以请求的维度,串联服务间的调用关系并记录调用耗时,即保存须要的信息,又将分散的日志事件通过 Span 串联, 资助我们更好的理解系统的行为、辅助调试和排查性能问题,也是本文接下来介绍的重点。

Logging,Metrics 和 Tracing 既各自有其专注的部门,也有相互重叠的部门

发表我的评论 共有条评论
    名字:
全部评论