fast-tracker-nodejs

天眼nodejs探针

Usage no npm install needed!

<script type="module">
  import fastTrackerNodejs from 'https://cdn.skypack.dev/fast-tracker-nodejs';
</script>

README

nodejs探针

目前支持插件:express、redis、http、axios、logging、custom(自定义)。

npmjs地址: https://www.npmjs.com/package/fast-tracker-node

探针配置

参照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()