全链路日志追踪系统介绍与思考

本文介绍了全链路日志追踪的重要性,特别是在大规模分布式系统中,通过trace_id、span_id等概念还原调用链路。讨论了Dapper等开源框架,以及个人实现思路,包括基础架构中的ID生成策略如Snowflake算法和日志收集组件的选择,如Elasticsearch与ClickHouse的对比。同时,文章提到了HTTP和RPC请求的拦截与日志记录,以及分布式调用链路监控对于线上问题定位的价值。

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

什么是全链路日志追踪

谷歌的一篇论文,论述了相关的概念。论文讲述了谷歌的大规模分布式系统全链路日志追踪基础设施Dapper。

论文下载地址

全链路日志追踪主要应用于大规模的、复杂的分布式系统之中。其中,有几个主要的概念:

  • trace_id:分布式全局唯一id标识,由系统第一个被调起的模块生成,并在各个span间传递;

  • span_id:区分模块用id,通过span_id和trace_id可以定位到具体的模块的一次请求;

  • parent_span_id:调用当前模块的父级模块span_id;

  • Cs CLIENT_SEND:客户端发起请求;

  • Cr CLIENT_RECIEVE:客户端收到响应;

  • Sr SERVER_RECIEVE:服务端收到请求;

  • Ss SERVER_SEND:服务端发送结果;

    另外,有些实现,会产生rpc_id去记录下一次完整rpc调用的链路;

    根据采集到的数据,可以还原一次调用链路的树状图,可以通过该树状图明确的看出各个服务间调用的情况,响应时间等数据,如下图所示:
    在这里插入图片描述

通过论文的阅读可以知道,Dapper的实现思路是:

  1. 产生日志;
  2. 采集日志;
  3. 写表;

调用链的基本要求:

  1. 低开销;
  2. 应用层透明;
  3. 可扩展;
  4. 收集及时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值