0.22.0 • Published 3 years ago

zipkin-instrumentation-express v0.22.0

Weekly downloads
33,832
License
Apache-2.0
Repository
github
Last release
3 years ago

zipkin-instrumentation-express

Express middleware and instrumentation that adds Zipkin tracing to the application.

Express Middleware

const express = require('express');
const {Tracer, ExplicitContext, ConsoleRecorder} = require('zipkin');
const zipkinMiddleware = require('zipkin-instrumentation-express').expressMiddleware;

const ctxImpl = new ExplicitContext();
const recorder = new ConsoleRecorder();
const localServiceName = 'service-a'; // name of this application
const tracer = new Tracer({ctxImpl, recorder, localServiceName});

const app = express();

// Add the Zipkin middleware
app.use(zipkinMiddleware({tracer}));

Express HTTP Proxy

This library will wrap express-http-proxy to add headers and record traces.

const {ConsoleRecorder, Tracer, ExplicitContext} = require('zipkin');
const {wrapExpressHttpProxy} = require('zipkin-instrumentation-express');
const proxy = require('express-http-proxy');

const ctxImpl = new ExplicitContext();
const recorder = new ConsoleRecorder();
const tracer = new Tracer({ctxImpl, recorder});
const serviceName = 'weather-app';
const remoteServiceName = 'weather-api';

const zipkinProxy = wrapExpressHttpProxy(proxy, {tracer, serviceName, remoteServiceName});

app.use('/api/weather', zipkinProxy('http://api.weather.com', {
  decorateRequest: (proxyReq, originalReq) => proxyReq.method = 'POST' // You can use express-http-proxy options as usual
}));

This can also be combined with Zipkin Express Middleware. Note the use of zipkin-context-cls.

const {ConsoleRecorder, Tracer} = require('zipkin');
const {expressMiddleware, wrapExpressHttpProxy} = require('zipkin-instrumentation-express')
const CLSContext = require('zipkin-context-cls');
const proxy = require('express-http-proxy');

const ctxImpl = new CLSContext();
const recorder = new ConsoleRecorder();
const tracer = new Tracer({ctxImpl, recorder});
const serviceName = 'weather-app';
const remoteServiceName = 'weather-api';

const zipkinProxy = wrapExpressHttpProxy(proxy, {tracer, serviceName, remoteServiceName});

app.use('/api/weather', expressMiddleware({tracer, serviceName}), zipkinProxy('http://api.weather.com'));
0.22.1-alpha.6

3 years ago

0.22.1-alpha.3

4 years ago

0.22.0

4 years ago

0.21.1-alpha.2

4 years ago

0.21.0

4 years ago

0.20.0

4 years ago

0.19.2

4 years ago

0.19.2-alpha.6

4 years ago

0.19.2-alpha.3

4 years ago

0.19.2-alpha.1

5 years ago

0.19.1

5 years ago

0.20.0-alpha.1

5 years ago

0.20.0-alpha.0

5 years ago

0.19.0

5 years ago

0.18.6

5 years ago

0.18.5

5 years ago

0.18.4

5 years ago

0.18.4-alpha.7

5 years ago

0.19.0-alpha.4

5 years ago

0.18.3

5 years ago

0.18.2

5 years ago

0.18.1

5 years ago

0.18.0

5 years ago

0.17.1

5 years ago

0.17.0

5 years ago

0.16.2

5 years ago

0.16.1

5 years ago

0.16.0

5 years ago

0.15.0

5 years ago

0.14.3

6 years ago

0.14.2

6 years ago

0.14.1

6 years ago

0.14.0

6 years ago

0.13.0

6 years ago

0.12.0

6 years ago

0.11.2

6 years ago

0.11.1

6 years ago

0.11.0

6 years ago

0.10.1

7 years ago

0.10.0

7 years ago

0.9.0

7 years ago

0.7.3

7 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.0

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.4

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.9

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago