@mcf/tracer
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.22 • Public • Published

    npm version

    @mcf/tracer

    Creates a Zipkin tracer for consumption by an Express-based application.

    Scope

    • Create a tracer

    Installation

    npm i @mcf/tracer;
    # OR 
    yarn add @mcf/tracer;

    Usage

    const {createTracer} = require('@mcf/tracer');
    // OR
    import {createTracer} from '@mcf/tracer';

    Basic

    import express from 'express';
    import {expressMiddleware} from 'zipkin-instrumentation-express';
    import {createTracer} from '@mcf/tracer';
    const tracer = createTracer();
    const server = express();
    server.use(expressMiddleware({tracer}));
    server.listen();
     
    // access context from anywhere
    import {MCF_TRACE_NAMESPACE} from '@mcf/tracer';
    import {getNamespace} from 'cls-hooked';
    const namespace = getNamespace(MCF_TRACE_NAMESPACE);
    // do whatever you want with namespace
     

    Full Configuration (with defaults)

    import express from 'express';
    import {expressMiddleware} from 'zipkin-instrumentation-express';
    import {createTracer} from '@mcf/tracer';
    const tracer = createTracer({
      httpHeaders: {},
      localServiceName: 'unknown',
      sampleRate: 0.5,
      syncIntervalMs: 1000,
      serverHost: 'localhost',
      serverPort: '9411',
      serverProtocol: 'http',
    });
    const server = express();
    server.use(expressMiddleware({tracer}));

    API

    .createTracer(:options)

    Creates the tracer instance. The :options parameter has the following schema:

    Key Defaults To Description Environment variable
    httpHeaders {} Additional HTTP headers to be sent to the Zipkin server -
    localServiceName os.hostname() OR 'unknown' The identity of the current service process.env.HOSTNAME
    sampleRate 0.5 The frequency of sampling by Zipkin. Settings this to 1.0 may cause your data store behind Zipkin to be populated very quickly. Use higher numbers for testing only -
    syncIntervalMs 1000 Synchronises the data every X milliseconds -
    serverHost "localhost" The hostname of your Zipkin service process.env.ZIPKIN_HOST
    serverPort "9411" The port on which the Zipkin service is listening to process.env.ZIPKIN_PORT
    serverProtocol "http" The string identifier of the protocol your are using. Typically "http" or "https" process.env.ZIPKIN_PROTOCOL

    Changelog

    0.0.11

    • Use cls-hooked for context implementation

    0.0.6

    • Added static exports for retrieving a Winston formatter to add context details to the logs
    • Release!

    0.0.5

    • Added static exports for retrieving the context provider middleware
    • Added static exports for retrieving the Morgan tokenizers

    0.0.4

    • Added Morgan tokenizer generator

    0.0.3

    • Initial release

    Keywords

    none

    Install

    npm i @mcf/tracer

    DownloadsWeekly Downloads

    1

    Version

    0.0.22

    License

    MIT

    Unpacked Size

    13.6 kB

    Total Files

    10

    Last publish

    Collaborators

    • vicheng.gt
    • gylsky
    • boonsiangteh
    • eijiew
    • npm-govtechsg-mcf-sh