@voodoo.io/tracing-middleware
v2.0.2
Published
Add a middleware to handle tracing with open tracing libs
Downloads
1,135
Readme
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