给项目日志加上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的调用耗时。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

打杂程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值