README
nodejs探针
目前支持插件:express、redis、http、axios、logging、custom(自定义)。
探针配置
参照json:
{
"Enable": true, // 是否启用
"Debug": true, // debug模式
"EnvCode": "test", // 环境变量 prod、test、beta、dev
"ProductCode": "test", // 产品code【**必填**】
"AppCode": "test", // appcode【**必填**】
"TenantCode": "test", // 租户
"UserCode": "test", // 用户
"ServiceName": "service1", // 服务名称
"SocketPath": "udp://127.0.0.1:5140", // udp数据上报地址, ip:port 方式即可
"IgnoreSuffix": ".jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg,.map", // 忽略上报文件后缀
"TraceIgnorePath": "",
"Logging": {
"Level": "error" // logging上报的级别, 从低到高:debug、info、log、warn、error
},
"Event": {
"Components": { // 采集组件是否开启
"Axios": true,
"Express": true,
"Http": true,
"Logging": true,
"Redis": true,
"CustomEvent": true
}
},
"TenantCodeReader": { // 租户code读取方式配置
"ReaderType": "", // 方式有:Cookie > QueryString > RequestHeader > Environment
"ReaderKey": "tenant_code" // 读取的key值
},
"UserCodeReader": { // 用户code读取方式配置
"ReaderType": "", // 同上
"ReaderKey": "user_code"
},
"CarrierHeader": { // 跨进程header key值设定
"TrackerName": "fast-tracker", // 后端服务之间传递trace信息的header key值
"TraceIdName": "x-fast-trace-id" // 前端传递给后端
}
}
探针api
1、custom 自定义组件
// 创建实例
const instance = FastTracker.beginSapn()
// 【非必填】, 默认值为 CustomEvent
instance.setComponent('ComponentName')
// 添加tag, 可设置多个
instance.addTag('tagKey', 'tagValue')
instance.addTag('tagKey_1', 'tagValue_1')
// 添加日志
instance.addLog("log内容")
instance.addLog('log内容1')
// 结束
instance.endSpan()
2、配置信息
// 运行时设置租户code
FastTracker.setTenantCode('fast')
// 运行时设置用户code
FastTracker.setUserCode('fast')
// 读取租户code
FastTracker.getTenantCode()
// 读取用户code
FastTracker.getUserCode()
// 读取所有配置信息
FastTracker.getConfig()
3、logging 日志组件
// 依次: debug、info、log、warn、error,受配置项 Logging.Level 影响
FastTracker.debug('debug内容')
FastTracker.info('info内容')
FastTracker.log('log内容')
FastTracker.warn('warn内容')
FastTracker.error('error内容')
使用
1、项目引入fast-tracker-node,以npm为例
npm i fast-tracker-node --save-dev
2、修改配置(探针启动后的配置修改,目前仅提供上述api方式)
- 自定义配置文件, docker
// FastTracker.json 文件内容参照上方配置json格式
docker run --env FastTracker.ConfigPath=/etc/FastTracker.json image:tag
- 环境变量配置, docker
docker run -d -p 8092:3000 --name ${SERVICE1_NAME} --env-file .env ${IMG_SERVICE1}
- .env内容如下, 以FastTracker_为前缀,多层级连接同样以_
FastTracker_Enable=true
FastTracker_Debug=true
FastTracker_ServiceName=Service1
FastTracker_ProductCode=fast-test
FastTracker_AppCode=tracker_nodejs
FastTracker_EnvCode=test
FastTracker_TenantCode=service1
FastTracker_UserCode=service1
FastTracker_SocketPath=udp://127.0.0.1:5140
3、在node项目的启动文件中导入,如果在后续的开发中需要使用FastTracker对象,建议单独模块导出,以供后续的调用
import FastTracker from 'fast-tracker-node'
// 使用start方法启动探针
FastTracker.start()