Wondering what’s next for npm?Check out our public roadmap! »

    xa-grpc-tracker

    1.0.7 • Public • Published

    xa-grpc-tracker

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

    Install

    $ npm i xa-grpc-tracker --save

    Usage

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

    Configuration

    // {app_root}/config/config.default.js
    exports.xaGrpcTracker = {
      debug: false, // 是否开启debug日志
      port: 50051, // grpc服务监听端口
      url: 'http://10.12.31.175:18166/lqm/spanReport', // 链路监控API地址
    };
     

    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 class through this.ctx.
     * 
     * @memberof HomeController
     */
      async index() {
        const mockGrpcRequest = {
          dln: 'grpc-dln',
          span_name: 'server_span_name',
          span_id: chance.string({ length: 16 }),
          parent_id: chance.string({ length: 16 }),
          trace_id: chance.string({ length: 32 }),
        };
        const { xaGrpcTracker } = this.ctx;
        const trackerServer = new xaGrpcTracker(this.ctx, mockGrpcRequest);
     
        const span_name = 'client_span_name';
        const { dln, span_id: parent_id, trace_id } = trackerServer.trackerParams;
        const trackerClient = new xaGrpcTracker(this.ctx, { dln, span_name, parent_id, trace_id });
     
        trackerServer.sendToRemote(1);
        // some async calls...
        trackerClient.sendToRemote(2);
        // some sync calls...
        trackerClient.sendToRemote(3);
        // some sync calls...
        trackerServer.sendToRemote(0);
        this.ctx.body = trackerServer.trackerParams;
      }
    }
     
    module.exports = HomeController;

    Questions & Suggestions

    Please open an issue here.

    License

    MIT

    Install

    npm i xa-grpc-tracker

    DownloadsWeekly Downloads

    10

    Version

    1.0.7

    License

    MIT

    Unpacked Size

    9 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar