zipkin后端组件集合
to-do list
- express支持
- restify支持
- koa@2支持
- request支持
- rest支持
- koa@1.x支持
- mongodb支持
- sequelize支持
- proxy相关支持
更新日志
v0.4.1
- 修复了之前包装mongodb存在的隐患(实际上算是错误...)
- 加入了对find/aggregate的支持(不完善,没找到更好的方案)
v0.4.0
- 增加了对mongodb的支持
- 新增了一个过滤器,可以根据需要导出需要的包,而不需要每次导出那些不需要的包。
配置
config = serviceName: String; // 服务名称 zipkinServiceUrl: String; // zipkin 服务url disableTracing: Boolean; // 禁用zipkin, default: false remoteServiceName?: String; // 可选 // 示例const zipkinConfig = zipkinServiceUrl: "data.smartstudy.com/api/v1/spans" serviceName: "yourProjName" disableTracing: false;
过滤器可以参考下面的示例。
filter = "mongodbWrapper" "expressMiddleware"; // arrayfilter = "expressMiddleware"; // string
使用示例
注意事项
测试用例需要本地起一个数据库和一个zipkin服务,不然会报错。
// 测试npm test
安装
npm i zhike-zipkin-backend
express中间件
const expressMiddleware = config "mongodbWrapper" "expressMiddleware";app
restify中间件
const restifyMiddleware = config "restifyMiddleware";app
koa@2中间件
const koaMiddleware = config;app
koa@1.x中间件
const "koaMiddleware@1.x": koaMiddleware = config;app
包装request
request, request-promise都支持
const request = config;const rp = config;
包装rest
const rest = config;
包装mongodb
// 这里建议以服务名称-mongo来命名const mongodb = config;
这里需要注意,这里的包装是全局性的,每次包装都会覆盖之前的修改,例如下面的例子
const mongodb1 = config;const mongodb2 = config; // 后面的过程实际上都是用的mongodb2mongodb2shouldnotdeep;