APM 探针分析

2019-02-23  本文已影响0人  邵增卫

概要


APM探针主要有侵入式探针和非侵入式探针。

其中侵入式探针以zipkin为代表,非侵入式探针以pinpoint为代表。除此之外业内还有一些做的比较出色的APM开源产品。

例如由大众点评网开源的CAT , 吴晟开源的个人项目并且已经纳入Apache基金会的 Skywalking ;Uber在Zipkin的基础上构建了自己的APM产品Jeager;同时随着APM的蓬勃发展CNCF推出了APM标准API opentracing,其中Zipkin,jeager等开源团队已经跟进。

侵入式探针 VS 非侵入式探针

侵入式探针: 通过添加代码,配置拦截器等方式实现数据采集。

非侵入式探针: 通过修改字节码的方式实现数据采集。

APM数据格式介绍


Zipkin v1


zipkin 通过Span parentID复原分布式调用关系。

image

Zipkin V2


Zipkin v2中用kind(server,client)取代 v1中的ss,sr,cs,cr;同时,在一个请求中的client和server的spanID是相同的。

image

Pinpoint数据格式介绍


pinpoint添加了span event的概念,利用深度和偏移量的概念建立span event的层级关系,span之间使用parent span ID恢复分布式调用。

image

在APM业内zipkin的数据模型更加流行,pinpoint数据模型只有pinpoint在使用,其他APM产品都是在zipkin数据模型的基础上建立的。

APM产品的探针对比


特性 Zipkin(brave) CAT Jeager pinpoint skywalking
实现方式 代码埋点 代码埋点 代码埋点 字节码增强 字节码增强
数据模型 zipkin V1 & v2 zipkin V1 & v2 zipkin V1 & v2 pinpoint zipkin V1 & v2
实现Opentracing标准接口 Y N Y N N
数据发送方式
采样算法
上一篇下一篇

猜你喜欢

热点阅读