1.2.0 • Published 4 years ago

xa-tracker v1.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

xa-tracker

xa tracker eggjs plugin which can generate a new tracker object for each ctx, ctx.request and ctx.response instance automatically.

Install

$ npm i xa-tracker --save

Usage

// {app_root}/config/plugin.js
exports.xaTracker = {
  enable: true,
  package: 'xa-tracker',
};

Configuration

// {app_root}/config/config.default.js
exports.xaTracker = {
  debug: false, // 是否开启调试日志
  isRootEndPoint: true, // 是否为根节点
  filterConditions: [{ url: 'xxxx', span_name: 'xxxx' }] // 请求过滤条件
  frequency: 1, // 采样间隔,每${frequency}次请求,采样一次
  url: 'http://10.12.31.175:18166/lqm/spanReport', // 链路监控API地址
};

exports.middleware = ['xaTracker'] // Enable tracker middleware

see config/config.default.js for more detail.

Example

// {app_root}/controller/index.js

const Controller = require('egg').Controller;

class HomeController extends Controller {
/**
 * Get tracker object through ctx, ctx.request or ctx.response.
 *
 * @params {string} tracker.trace_id      - get from http header of trace-id or autoGenerate by plugin if rootEndPoint is true.
 * @params {string} tracker.span_id       - generate by plugin automatically.
 * @params {string} tracker.parent_id     - get from http header of span-id or autoGenerate by plugin if rootEndPoint is true.
 * 
 * @memberof HomeController
 */
  async index() {
    const span_name = 'mock_span_name';
    const span_id = this.ctx.idGenerator(); // 生成新的spanId
    const parent_id = this.ctx.tracker.span_id; // 获取parentId
    this.ctx.tracker.sendToRemote(2, span_name, span_id, parent_id); // 上报链路信息(异步)
    // mock grpc call...
    const trace_id = this.ctx.tracker.trace_id;
    const dln = this.ctx.tracker.DLN;
    await this.ctx.grpc.command.sendCommand({ span_name, span_id, parent_id, trace_id, dln }) 
    // ...
    this.ctx.tracker.sendToRemote(3, span_name, span_id, parent_id); // 上报链路信息(异步)
    this.ctx.body = this.ctx.tracker;
  }
}

module.exports = HomeController;

Questions & Suggestions

Please open an issue here.

License

MIT

1.2.0

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.9

4 years ago

1.0.10

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago