追踪系统

概述

参考:

Jaeger

Tempo

Skywalking

Zipkin

链路追踪需要在程序码中嵌入追踪库?那如何配置程序自己的调用栈数据推送到哪里,推送间隔,推送量之类的信息?

Application Performance Management(简称 APM) 是链路追踪程序可以实现的一种能力。

产品对比

分布式跟踪系统——产品对比

产品名称厂商开源OpenTracing标准侵入性应用策略时效性决策支持可视化低消耗延展性
Jaegeruber开源完全支持部分侵入策略灵活时效性高, UDP协议传输数据(在Uber任意给定的一个Jaeger安装可以很容易地每天处理几十亿spans)决策支持较好,并且底层支持metrics指标报表不丰富,UI比较简单消耗低jaeger比较复杂,使用框架较多,比如:rpc框架采用thrift协议,不支持pb协议之类。后端存储比较复杂。但经过uber大规模使用,延展性好
zipkintwitter开源部分支持侵入性强策略灵活时效性好决策一般(功能单一,监控维度和监控信息不够丰富。没有告警功能)丰富的数据报表系统开销小延展性好
CAT大众点评 吴其敏开源-侵入性强策略灵活时效性较好,rpc框架采用tcp传输数据决策好报表丰富,满足各种需求消耗较低 , 国内很多大厂都在使用-
Appdashsourcegraph开源完全支持侵入性较弱采样率支持(粒度:不能根据流量采样,只能依赖于请求数量);没有trace开关时效性高决策支持低可视化太弱,无报表分析消耗方面。不支持大规模部署, 因为appdash主要依赖于memory,虽然可以持久化到磁盘,以及内存存储支持hash存储、带有效期的map存储、以及不加限制的内存存储,前者存储量过小、后者单机内存存储无法满足延展性差
MTrace美团不开源----
CallGraph京东不开源-
Watchmansina微博不开源-
EagleEye淘宝不开源-
skywalking华为 吴晟开源完全支持侵入性很低策略灵活时效性较好由于调用链路的更细化, 但是作者在性能和追踪细粒度之间保持了比较好的平衡。决策好丰富的数据报表消耗较低延展性非常好,水平理论上无限扩展

最后修改 July 23, 2024: clearup observability (4b9f5578)