链路追踪--选型/对比/工具/方案/分布式

知识就是力量,时间就是生命。这篇文章主要讲述链路追踪--选型/对比/工具/方案/分布式相关的知识,希望能为你提供帮助。


?
简介【链路追踪--选型/对比/工具/方案/分布式】说明
链路追踪工具一般要有如下功能:

  1. 心跳检测(确定应用是否还在运行)
  2. 记录请求的执行流程、执行时间
  3. 资源监控(CPU、内存、带宽、磁盘)
  4. 告警功能(监控执行时间、成功率等通过邮件、钉钉、短信、微信等进行通知)
  5. 可视化页面
本文主要对比全链路追踪中常使用的Zipkin、Pinpoint、SkyWalking和CAT。
对比(总览)


框架




??Jaeger??




??zipkin??




??Apache skyWalking??




??CAT??




??Pinpoint??




??Elastic??  APM




Github Star
(2021-09-11)




14.2k+




14.7K+




17.7k+




15.9k+




11.7k+




926+




Github contributors




191




146




313




77




99




53




作者




CNCF、Uber




Apache、Twitter




Apache




美团




NAVER




Elastic




代码侵入性





























很低




UI




很差




很差




很好




较差




很好




很差




traceId查询










不支持




支持




不支持




不支持








性能损失






监控报警




无,需结合其它工具实现




无,需结合其它工具实现




支持




支持




支持




支持




存储类型




Memory,
Cassandra,
Elasticsearch,
Kafka




Memory,
Cassandra,
ElasticSearch
and mysql




Memory(H2)、
ElasticSearch,
MySQL、
TiDB、
infulxdb




HDFS




HBase




Elasticsearch




OpenTracing兼容





























不完善




颗粒度










接口级




方法级。
(更详细),方法中所有远程调用都展示:如数据库、redis




代码级




方法级。
(更详细)












实现方式










拦截请求,发送(HTTP,mq)数据至zipkin服务




java探针,字节码增强




代码埋点(拦截器,注解,过滤器等)




Java探针,字节码增强










接入方式










基于linkerd或者sleuth方式,引入配置即可




javaagent字节码




代码侵入




javaagent字节码










agent到collector的协议










http,MQ




gRPC




http/tcp




thrift








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


    推荐阅读