2.0.3 • Published 5 months ago

@voodoo.io/tracing-middleware v2.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

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
    }
})
NameDefaultDescription
serviceNameprocess.env.OTEL_SERVICE_NAMEYour service's name
exporterEndpointprocess.env.OTEL_EXPORTER_ENDPOINTThe opentelemetry endpoint
instrumentationsList of instrumentations
instrumentations.httptrue
instrumentations.awstrue
instrumentations.mysqlfalse
instrumentations.mongodbfalse
instrumentations.pgfalse
instrumentations.redisfalse
instrumentations.ioredisfalse
instrumentations.graphqlfalse
instrumentations.koafalse
instrumentations.expressfalse
instrumentations.fastifyfalse
instrumentations.lambdafalse
instrumentations.grpcfalse
instrumentations.winstonfalse

Compatibility

VersionSupportedTested
20.xyesyes
18.xyesyes

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