Skip to content

VoodooTeam/tracing-middleware

Repository files navigation

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
instrumentations.winston false

Compatibility

Version Supported Tested
20.x yes yes
18.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

npm publish

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published