@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.
24 lines (19 loc) • 799 B
JavaScript
const grpc = require('grpc');
const interceptors = require('../index');
const proto = require('./proto');
function Greet(call, callback) {
return callback(null, { message: `Hello ${call.request.message}` });
}
function Wave(call, callback) {
return callback(null, { message: 'Wave' });
}
function WaveAgain(call, callback) {
return callback(null, { message: 'Wave' });
}
module.exports = port => {
const server = interceptors.serverProxy(new grpc.Server());
server.addService(proto.Test.Messenger.service, { Greet, Wave, WaveAgain });
server.bind(`localhost:${port}`, grpc.ServerCredentials.createInsecure());
const client = interceptors.clientProxy(new proto.Test.Messenger(`localhost:${port}`, grpc.credentials.createInsecure()));
return { server, client };
};