核心概念

日志(Logging)、指标(Metrics)和追踪(Tracing)是紧密相关的三个核心概念。下面这张图能够很清楚的描述了这三者之间的关系:

tracing_Logging_metrics.jpg
图片 - tracing_Logging_metrics.jpg
  • 日志(Logging)

日志描述的是一些不连续的离散时间。例如,有些业务系统采用ELK(Elasticsearch+Logstash+Kibana)或类似技术栈的日志手机系统, 它们是分布式监控系统的早期形态,借鉴了传统应用解决问题的方式,是最容易理解的解决方案。

  • 指标(Metrics)

指标是可累加的,它具有原子性。每个指标都是一个逻辑计量单元,体现了一段时间之内相关指标的状态。 例如:队列当前的深度可以被定义为一个计量单元,在写入或读取时更新;输入 HTTP 请求的数量可以被定义为一个计数器,用于进行简单累加;请求的执行时间可以被定义为一个柱状图,在指定时间片上更新和汇总。

  • 追踪(Tracing)

追踪在监控领域通常被称为分布式追踪,是指在单次请求范围内处理信息。任何的数据和元数据信息都被绑定到了系统中的单个事务上。 追踪能力是近几年技术人员最为关注的需求,由 Twitter 开源的 Zipkin 是目前运用最为广泛的分布式追踪系统之一。

上面介绍的三个概念并不是相互独立的,往往会有一定的重叠,复杂和完善的监控系统一般是跨越多个维度的。

  • 追踪(Tracing)+ 日志(Logging):这是多数分布式追踪系统的早期形态,通过简单的上下文传递,可以将请求的上下文ID输出到日志,让日志具备时间维度之外的另外一个关键维度——上下文关联。通过时间和上下文关联让这两个维度的组合,用户可以快速感受到分布式追踪带来的强大优势。

  • 日志(Logging)+ 指标(Metrics):这是日志分析系统的常规架构,可通过系统现有的业务日志获取相关的指标数据。

  • 追踪(Tracing)+ 指标(Metrics): 用于指明基本分布式追踪系统的数据分析指标、应用间的关系以及数据流向等。

日志、指标、追踪可以看作功能全集中的元素,一些商业级别的 APM (Application Performance Managment,应用性能管理) 系统便采用 “追踪+指标”的方式提供一体化的解决方案。 充分理解这三个概念,能够更好定位目前市面上的各种开源和商业监控体系工具,理解它们的核心优势。

后面就将介绍分布式追踪系统。

Copyright © Jared Tan 2019-2020 all right reserved,powered by GitbookUpdated: 2020-08-18 15:43:17

results matching ""

    No results matching ""