@pionerlabs/grpc-interceptors
Version:
This library provides a way to instrument Node.js gRPC clients and servers with interceptors/middleware e.g. for Prometheus metrics, Zipkin tracing etc.
25 lines (21 loc) • 570 B
JavaScript
const { HttpLogger } = require('zipkin-transport-http');
const { Tracer, BatchRecorder, ExplicitContext } = require('zipkin');
module.exports = localServiceName => {
let recorder;
if (process.env.ZIPKIN_URL) {
recorder = new BatchRecorder({
logger: new HttpLogger({
endpoint: process.env.ZIPKIN_URL,
}),
});
} else {
recorder = {
record() {},
};
}
return new Tracer({
ctxImpl: new ExplicitContext(),
recorder,
localServiceName,
});
};