生产环境的某个接口报错,如何定位
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 6
Author 回答者: shfshanyue
通常按照以下步骤进行定位
- 测试环境是否能够复现,若复现在测试环境测试并修复
- 有没有异常报警系统,如
sentry
,如果有在sentry
中查看异常堆栈信息以及相关上下文,定位代码 - 如果堆栈信息不足够找到问题,看有没有链路追踪工具,如
zipkin
。从sentry
中找到requestId/traceId
,通过requestId
结合kibana
/ElasticSearch
定位相关的数据库日志/上下游服务链路日志 - 如果以上都不行,查看接口相关代码
既然报错,那么一定会在异常上报系统中找到这条问题进行定位。如果在报警系统中没有定位到问题,可以查看
- 报警系统是否已限流,致使无法上报
- 复现异常时,抓包查看报警相关的 API,查看是否已上报
最怕的是那种接口没报错,但是业务方反馈数据有误的问题了,只能开了 debug,进行代码调试了
Author 回答者: zhangxiaokun
zipkin sleuth