知识就是力量,时间就是生命。这篇文章主要讲述链路追踪--选型/对比/工具/方案/分布式相关的知识,希望能为你提供帮助。
?
简介【链路追踪--选型/对比/工具/方案/分布式】说明
链路追踪工具一般要有如下功能:
- 心跳检测(确定应用是否还在运行)
- 记录请求的执行流程、执行时间
- 资源监控(CPU、内存、带宽、磁盘)
- 告警功能(监控执行时间、成功率等通过邮件、钉钉、短信、微信等进行通知)
- 可视化页面
对比(总览)
框架 | ??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默认策略比较保守,对性能损耗很小。
推荐阅读
- k8s部署-46-k8s共享存储(下)
- 无屏幕BCI系统也有强大的分类性能
- Java读取ID卡卡号源码
- centos7 以上 安装 docker 和 docker-compose
- elasticsearch7.16版本数据冷热分层迁移失败总结
- U盘把 FAT32 转成 NTFS 的方式,实现过大的文件可以传输
- mysql 内网环境 连接慢排坑
- centos8 ens33 没有 ip 的解决方法(没有 ip 会导致无法 ping 通别的服务)
- 7次KDD Cup&Kaggle冠军的经验分享(从多领域优化到AutoML框架)