Skip to content

Correlate http requests across microservices built with zeit/micro

License

Notifications You must be signed in to change notification settings

tafarij/micro-correlation-id

Repository files navigation

micro-correlation-id

Correlate http requests across microservices built with micro.

This a micro module for setting a correlation id per HTTP request. The correlation id associated with a request remains consistent across async calls made within the scope of the request handler.

This module is inspired by express-correlation-id and makes use of AsyncLocalStorage.

Installation

# npm
npm i -S micro-correlation-id

# or yarn
yarn add micro-correlation-id

Usage

const { correlator, getId } = require('micro-correlation-id');
const assert = require('assert');

module.exports = correlator()(async (req, res) => {
  // These values will always be the same within this scope
  assert.equal(req.correlationId(), getId());
  res.end();
});

API

correlator(idHeader='x-correlation-id')

This creates and/or sets the correlation id on each incomming request. If the incoming request has a correlation id then that id is preserved, a new uuid is assigned otherwise. The correlation id may be accessed using req.correlationId() or getId().

correlator takes and optional argument idHeader which defaults to x-correlation-id. This is HTTP header key used for passing a correlation id. You may change this to your liking.

getId()

Use this to get the current correlation id from any where within a request handler. It will always be equivalent to req.correlationId().

License

MIT

About

Correlate http requests across microservices built with zeit/micro

Resources

License

Stars

Watchers

Forks

Packages

No packages published