JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 44
  • Score
    100M100P100Q84128F
  • License MIT

Add a middleware to handle tracing with open tracing libs

Package Exports

  • @voodoo.io/tracing-middleware

Readme

GitHub release GitHub license Opened PR Opened issues CI pipeline Dependencies updates Dependencies updates Node version Code coverage

Tracing middleware with open tracing libs

Purpose

A simple middleware to enable tracing with opentelemetry lib. It will instantiate some instrumentation libs in order to catch span for:

  • HTTP calls
  • AWS SDK
  • Mysql
  • MongoDB
  • Postgres
  • Web frameworks: Fastify, Express, Koa
  • AWS Lambda
  • Redis
  • GraphQL
  • GRPC

Installation

npm install @voodoo.io/tracing-middleware --save

Usage

Basic usage

const tracer = require('@voodoo.io/tracing-middleware')()

Use addTraceId method

This method will add the traceID in the req object.

const tracingModule = require('@voodoo.io/tracing-middleware')()

fastify.addHook('onRequest', tracingModule.addTraceId)

Configuration

Example of configuration, using tempo as endpoint.

const tracer = require('@voodoo.io/tracing-middleware')({
    serviceName:: 'myService',
    exporterEndpoint: 'http://tempo.monitoring.svc.cluster.local:14268/api/traces',
    instrumentations: {
        mysql: true,
        lambda: true
    }
})
Name Default Description
serviceName process.env.OTEL_SERVICE_NAME Your service's name
exporterEndpoint process.env.OTEL_EXPORTER_ENDPOINT The opentelemetry endpoint
instrumentations List of instrumentations
instrumentations.http true
instrumentations.aws true
instrumentations.mysql false
instrumentations.mongodb false
instrumentations.pg false
instrumentations.redis false
instrumentations.ioredis false
instrumentations.graphql false
instrumentations.koa false
instrumentations.express false
instrumentations.fastify false
instrumentations.lambda false
instrumentations.grpc false

Compatibility

Version Supported Tested
16.x yes yes
14.x yes yes

Debug

DEBUG=tracing-middleware* node myApp.js

Test

$ npm test

Run with coverage

$ npm run coverage

Coverage report can be found in coverage/.

License

MIT