概要
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复原分布式调用关系。
imageZipkin V2
Zipkin v2中用kind(server,client)取代 v1中的ss,sr,cs,cr;同时,在一个请求中的client和server的spanID是相同的。
imagePinpoint数据格式介绍
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 |
数据发送方式 | |||||
采样算法 |
网友评论