背景:
1、服务拆分后定位问题困难,追踪日志复杂
2、人员之间沟通需要提供数据、发生问题时的上下文,复杂度较高
解决方案:
1、入口生成TraceId, 生成规则类雪花算法,格式化方式: yyyymmdd_hhmmss_xxxxxxxxxx
2、服务间递传TraceId,服务内做线程TraceId隔离
3、Result中增加TraceId节点
4、ELK中增加ERROR堆栈信息收集
5、根据环境截获请求上下文(url、参数、返回结果),打入日志
5.1、在路由服务中截获所有请求URL、参数,打入日志(预发布、UAT、生产)
5.2、所有服务中截获所有请求URL、参数、返回结果,打入日志(开发、测试环境)
使用方式:(注:请各位开发同步所有服务代码)
1、对接双方提供traceId进行沟通,开发人员通过TraceId在ES中获取 请求URL+参数+返回结果,减少沟通成本,减少查错成本
2、测试与开发提BUG时,可以提供TraceId,开发排查时,可以方便开发复现测试时的上下文,减少复现成本
例子1:
全链路traceId追踪
最新推荐文章于 2024-06-17 15:16:58 发布