@mcf/tracer
v0.0.22
Published
Creates and exposes a Zipkin tracer for consumption by an Express-based application.
Downloads
47
Keywords
Readme
@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