grpc-interceptors
This library provides a way to instrument Node.js gRPC clients and servers with interceptors/middleware e.g. for Prometheus metrics, Zipkin tracing etc.
Usage
const interceptors = require('grpc-interceptors');
const grpc = require('grpc');
const server = interceptors.serverProxy(new grpc.Server());
server.addService(proto.MyPackage.MyService.service, { Method1, Method2 });
const myMiddlewareFunc = async function (ctx, next, errorCb) {
try {
console.log('Making gRPC call...');
await next()
console.log(ctx.status.code);
} catch(e) {
errorCb({
code: grpc.status.INTERNAL,
message: 'Some error occurred!'
});
}
}
server.use(myMiddlewareFunc);
Available Interceptors