@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

  • [x] 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

Readme

Keywords

none

Package Sidebar

Install

npm i @mcf/tracer

Weekly Downloads

4

Version

0.0.22

License

MIT

Unpacked Size

13.6 kB

Total Files

10

Last publish

Collaborators

  • at_govtech
  • boonsiangteh
  • vicheng.gt
  • npm-govtechsg-mcf-sh