给项目日志加上traceid

本文介绍了在微服务架构中添加traceid的重要性,用于跟踪请求的完整链路,便于故障排查和性能优化。traceid由uid、msgid、tid和timestamp组成,确保唯一性和时间相关性。虽然当前实现需要手动传递,但已开始逐步实现链路日志打印,并计划添加时间消耗统计。未来将寻求更优的traceid透传解决方案。
部署运行你感兴趣的模型镜像

给日志加上traceid

traceid是什么?

  • 这里所说的traceid是指在服务端收到客户端请求后到服务端返回给客户端结果的过程中给没一条日志添加一个相同的traceid来跟踪请求到返回的整个过程。

为什么要给服务的日志加上traceid?

  • 最近准备给项目里的日志都加上traceid。这样方便服务端网关在收到请求后到返回给客户端之前追踪整个请求的链路。方便排查线上的bug以及统计查询请求的性能瓶颈。
  • 添加一个traceid,对于一个新项目而言并不是什么难事,但是对于一个已经成熟上线的项目而言,还是有很多要注意的地方。
  • 目前我们这个上线的项目采用的微服务的思想:项目里面把功能相对独立的部分单独成进程。方便服务的快速迭代,快速部署和部分更新。实际上这样的拆分作用相当明显,需要功能都不需要停服就可以一做到热更新,大大降低了维护成本,提高了用户的体验。

如何设计traceid?

  • 这里把traceid分成4个部分:
    • 用户相关的uid
    • 消息相关的msgid
    • 递增或唯一的tid
    • 时间相关的时间戳timestamp
  • 用户的uid不用说,方便识别这个业务和那个用户相关。
  • 消息msgid就方便定位业务。
  • tid为了保证traceid的唯一性。
  • 时间戳方便统计请求到返回消耗的时间,同时在每深入一步后可以计算出消耗的时间。

traceid是否可以做到对业务透传?

  • 目前对于线上业务结构,还做不到透传。只能通过在节点间、函数调用间传递参数traceid的方式来使用traceid,这是最简单也是最繁琐的方案了。不过还挺实用,能够解决问题。目前先让各节点支持traceid的链路追踪,后续再进行优化。

总结

  • traceid的添加还在进行中,目前已完成部分节点的链路日志打印。后续会添加链路时间消耗的统计。这里先行记录一下。后续会使用traceid来统计一下各个api的调用耗时。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打杂程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值