@voodoo.io/tracing-middleware
TypeScript icon, indicating that this package has built-in type declarations

1.1.8 • Public • Published

npm version GitHub license Opened PR Opened issues CI pipeline 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
20.x yes yes
18.x yes yes
16.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

Release

In order to do the release, at the moment it's done manually, you need to get the publish token from 1password and then bump the version in the package.json file. Then you can run the following command:

npm publish

Package Sidebar

Install

npm i @voodoo.io/tracing-middleware

Weekly Downloads

115

Version

1.1.8

License

MIT

Unpacked Size

14.6 kB

Total Files

7

Last publish

Collaborators

  • voodooio
  • vincentvallet_voodoo
  • clementc
  • raphaelyazdi