分布式链路追踪技术

随着微服务的普及,分布式链路追踪成为定位服务故障和性能瓶颈的关键。APM如Zipkin、SkyWalking和CAT提供了不同级别的监控能力,其中SkyWalking以其代码级粒度和丰富的功能脱颖而出。OpenTracing致力于标准化链路监控,推动各组件间的互操作性。本文介绍了分布式追踪的背景、主流组件及其特性,帮助开发者选择合适的监控方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

概况

产生背景

APM

OpenTracing

主流组件


概况

分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪

产生背景

随着微服务架构和容器技术的兴起,一个看似简单的应用,后台可能有几十个甚至几百个服务在支撑;一个前端的请求可能需要多次的服务调用最后才能完成;当请求变慢或者不可用时,我们无法得知是哪个后台服务引起的,这时就需要解决如何快速定位服务故障点,分布式跟踪系统就能很好的解决这样的问题,帮助我们快速发现错误以及监控分析每条链路上的性能瓶颈。

APM

APM全称Application Performance Management应用性能管理,目的是通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案。Zabbix、Premetheus、open-falcon等监控系统主要关注服务器硬件指标与系统服务运行状态等,而APM系统则更重视程序内部执行过程指标和服务之间链路调用情况的监控,APM更有利于深入代码找到请求响应“慢”的根本问题,与Zabbix之类的监控是互补关系。

OpenTracing

OpenTracing组织,旨在推进调用链监控的规范和标准工作,统一规范化链路监控产吕,为了避免碎片化,促进互操作性。

OpenTraceing API参考:https://github.com/opentracing/opentracing-java                                                                                 

主流组件

类型zipkinSkyWalking(推荐)

美团CAT

阿里鹰眼(Eagleeye)

开源性

Twitter开源

国产开源,Apache

国产开源

不开源

基本原理拦截请求,发送(HTTP,mq)数据至zipkin服务java探针,字节码增强

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

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

接入方式基于linkerd或者spring cloud sleuth方式,引入配置即可avaagent字节码,无代码入侵

多种方式,java可直接引入jar

多种方式,java可直接引入jar

支持OpenTracing

颗粒度接口级(类级别)方法级

代码级

代码级

存储ES,mysql,Cassandra,内存ES,H2,TIDB

mysql,hdfs

hdfs

agent到collector的协议http,MQhttp,gRPC

http/tcp

http/tcp

官网

https://zipkin.io/pages/quickstart.html

http://skywalking.apache.org/

https://github.com/dianping/cat

https://www.cnblogs.com/gzxbkk/p/9600263.html

全局调用统计

不支持

支持

支持

支持

trace查询

支持

支持

不支持

支持

报警

不支持

支持

支持

支持

JVM监控

不支持

支持

不支持

不支持

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值