0.2.3 • Published 4 years ago

moleculer-jaeger v0.2.3

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

Moleculer logo

moleculer-jaeger NPM version

Moleculer metrics module for Jaeger.

Jaeger screenshot

Features

  • 5 types sampler
  • UDP sender

Install

$ npm install moleculer-jaeger

Usage

// moleculer.config.js
module.exports = {
    // ...
    metrics: true,
    // ...
}

// services/metrics.jaeger.service.js
const JaegerService = require("moleculer-jaeger");

module.exports = {
    mixins: [JaegerService],
    settings: {
        host: "jaeger-server",
        port: 6832
    }
};

Sampler configurations

More info: http://jaeger.readthedocs.io/en/latest/client_libraries/#sampling

Setup ConstSampler (default):

module.exports = {
    mixins: [JaegerService],
    settings: {
        host: "jaeger-server",
        port: 6832,
        
        sampler: {
            type: "Const",
            options: {
                decision: 1
            }
        }
    }
});

Setup RateLimitingSampler:

module.exports = {
    mixins: [JaegerService],
    settings: {
        host: "jaeger-server",
        port: 6832,
        
        sampler: {
            type: "RateLimiting",
            options: {
                maxTracesPerSecond: 2,
                initBalance: 5
            }
        }
    }
});

Setup ProbabilisticSampler:

module.exports = {
    mixins: [JaegerService],
    settings: {
        host: "jaeger-server",
        port: 6832,
        
        sampler: {
            type: "Probabilistic",
            options: {
                samplingRate: 0.1 // 10%
            }
        }
    }
});

Setup GuaranteedThroughputSampler:

GuaranteedThroughputProbabilisticSampler is a sampler that leverages both probabilisticSampler and rateLimitingSampler. The rateLimitingSampler is used as a guaranteed lower bound sampler such that every operation is sampled at least once in a time interval defined by the lowerBound. ie a lowerBound of 1.0 / (60 * 10) will sample an operation at least once every 10 minutes.

module.exports = {
    mixins: [JaegerService],
    settings: {
        host: "jaeger-server",
        port: 6832,
        
        sampler: {
            type: "GuaranteedThroughput",
            options: {
                lowerBound: 0.1,
                samplingRate: 0.1
            }
        }
    }
});

Setup RemoteControlledSampler:

module.exports = {
    mixins: [JaegerService],
    settings: {
        host: "jaeger-server",
        port: 6832,
        
        sampler: {
            type: "RemoteControlled",
            options: {
                //...
            }
        }
    }
});

Settings

PropertyTypeDefaultDescription
hostStringrequiredUDP Sender host option.
portNumbernullUDP Sender port option.
samplerObjectnullSampler configuration.
sampler.typeStringnullSampler type
sampler.optionsanyrequired
optionsObjectnullAdditional options for Jaeger.Tracer

Actions

Methods

Test

$ npm test

In development with watching

$ npm run ci

License

The project is available under the MIT license.

Contact

Copyright (c) 2016-2018 MoleculerJS

@moleculerjs @MoleculerJS