jaeger-node
Out of the box distributed tracing for Node.js applications.
WARNING: experimental library, do not use in production yet
This library is a higher level wrapper around opentracing-auto, that you should consider to use instead of this library.
Technologies
Requirements
Getting started
npm install @risingstack/jaeger
const Tracer = require('@risingstack/jaeger')
const tracer = new Tracer({
serviceName: 'my-server-2'
})
const express = require('express')
To start Jaeger and visit it's dashboard:
docker run -d -p5775:5775/udp -p6831:6831/udp -p6832:6832/udp -p5778:5778 -p16686:16686 -p14268:14268 jaegertracing/all-in-one:latest && open http://localhost:16686
Example
The example require a running MongoDB.
npm run example
curl http://localhost:3000
open http://localhost:16686
API
new Tracer(args)
Create a new Tracer and instrument modules.
args.serviceName
: Name of your service
- required
- example:
'my-service-1'
args.sampler
: Jaeger sampler, see sampler docs
- optional
- default:
new jaeger.RateLimitingSampler(1)
args.reporter
: Jaeger reporter, see reporter docs
- optional
- default:
new jaeger.RemoteReporter(new UDPSender())
args.options
: Jaeger options, see docs
- optional
- example:
{ tags: { gitHash: 'foobar' } }
Instrumentations
Check out opentracing-auto instrumentations.
EMSGSIZE and UDP buffer limits
Read more about it in the Client Libraries documentation.