背景:
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追踪
本文探讨了在服务拆分后如何通过TraceId简化问题定位和沟通,介绍雪花算法生成的TraceId规则,以及在ELK、日志中整合请求上下文的方法。开发人员可通过TraceId快速获取请求详情,降低故障排查成本。
摘要由CSDN通过智能技术生成