所有分类
  • 所有分类
  • 未分类

链路追踪–选型/方案

简介

说明

链路追踪工具一般要有如下功能:

  1. 心跳检测(确定应用是否还在运行)
  2. 记录请求的执行流程、执行时间
  3. 资源监控(CPU、内存、带宽、磁盘)
  4. 告警功能(监控执行时间、成功率等通过邮件、钉钉、短信、微信等进行通知)
  5. 可视化页面

本文主要对比全链路追踪中常使用的Zipkin、Pinpoint、SkyWalking和CAT。

对比(总览)

框架JaegerzipkinApache skyWalkingCATPinpointElastic APM
Github Star (2021-09-11)14.2k+14.7K+17.7k+15.9k+11.7k+926+
Github contributors191146313779953
作者CNCF、UberApache、TwitterApache美团NAVERElastic
代码侵入性很低
UI很差很差很好较差很好很差
traceId查询不支持支持不支持不支持
性能损失
监控报警无,需结合其它工具实现无,需结合其它工具实现支持支持支持支持
存储类型Memory, Cassandra, Elasticsearch, KafkaMemory, Cassandra, ElasticSearch and MysQLMemory(H2)、 ElasticSearch, MySQL、 TiDB、 infulxdbHDFSHBaseElasticsearch
OpenTracing兼容不完善
颗粒度接口级方法级。 (更详细),方法中所有远程调用都展示:如数据库、redis代码级方法级。 (更详细)
实现方式拦截请求,发送(HTTP,mq)数据至zipkin服务java探针,字节码增强代码埋点(拦截器,注解,过滤器等)Java探针,字节码增强
接入方式基于linkerd或者sleuth方式,引入配置即可javaagent字节码代码侵入javaagent字节码
agent到collector的协议http,MQgRPChttp/tcpthrift

性能对比

Pinpoint采集信息太过详细,所以,它对性能的损耗最大。而skywalking默认策略比较保守,对性能损耗很小。

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录