1 - 安装@qnpm/qtrace-node中间件; 2 - [安装应用上报](https://wiki.corp.qunar.com/confluence/pages/viewpage.action?pageId=347036252; 3 - 替换项目中的请求库为q-fetch
1 - trace中间件和q-fetch请求库之间做上下文绑定的方案,目前依赖的是node自带的async_hooks来追踪异步任务,async_hooks本身会消耗大量的内存,我当前的处理是
一:清理一个请求3秒内未完成的异步跟踪,丢弃这部分trace(因为3秒内未完成说明服务器压力比较大了,消耗不及时)(这个大小可在config.qtrace.js配置文件中根据业务需求自行配置)
二:同时提供了一个业务可配置的参数memoryLimit来限制内存,当前node使用的内存达到业务设置的上限的时候不再记录trace,等内存降到memoryLimit以下的时候才继续记录trace。(这个大小可在config.qtrace.js配置文件中根据业务需求自行配置)