jaeger-node
Out of the box distributed tracing for Node.js applications.
WARNING: do not use in production yet
Technologies
Requirements
Getting started
npm install @risingstack/jaeger
const Tracer = require('@risingstack/jaeger')
const tracer = new Tracer({
serviceName: 'my-server-2',
tags: {
gitTag: 'foobar'
}
})
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(options)
Create a new Tracer and instrument modules.
options.serviceName
: Name of your service
- required
- example:
'my-service-1'
options.tags
: Meta tags
- optional
- example:
{ gitHash: 'foobar' }
options.maxSamplesPerSecond
: maximum number of samples per second
options.sender
: sender configuration (Your Jaeger backend)
- optional
- default:
{ host: 'localhost', port: 6832, maxPacketSize: 65000 }
Instrumentations
Known issues
TODO
- more database instrumentation: PG, MySQL, Redis etc.
- messaging broker instrumentation: RabbitMQ, Kafka etc.
- test coverage
- multiple sampling algorithms