新版仓库地址

http://gitlab.corp.qunar.com/qnpm/qtrace

http://gitlab.corp.qunar.com/qnpm/qtrace/issue

主要优化点

  • 函数式实现,主要为了解决类中存在大量重复数据,又把类实例存储在cls-hooked中,导致内存占用问题
  • 更新优化了spanId和traceId的生成逻辑,代码大幅度减少
  • 删除代码中对日志的管理和输出逻辑,复用业务线log4js的日志输出和管理功能,在其中添加qtracer的日志配置
  • 使用lerna管理多包,避免到处维护项目

包结构

@qnpm/qtrace-connect 中间件的主包

@qnpm/qtrace-instrumentation-axios axios请求库的实现

@qnpm/qtrace-instrumentation-request request请求库的实现

@qnpm/qtrace-instrumentation-fetch 原生fetch的实现

@qnpm/qtrace-context-cls 使用zone实现nodejs threadLocal来实现上下文存储

express-examples express的测试项目

koa-examples koa的测试项目