0.0.22 • Published 4 years ago

@mcf/tracer v0.0.22

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

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:

KeyDefaults ToDescriptionEnvironment variable
httpHeaders{}Additional HTTP headers to be sent to the Zipkin server-
localServiceNameos.hostname() OR 'unknown'The identity of the current serviceprocess.env.HOSTNAME
sampleRate0.5The 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-
syncIntervalMs1000Synchronises the data every X milliseconds-
serverHost"localhost"The hostname of your Zipkin serviceprocess.env.ZIPKIN_HOST
serverPort"9411"The port on which the Zipkin service is listening toprocess.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
0.0.22

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.16

4 years ago

0.0.17

4 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago

0.0.0

6 years ago