grpc-node/packages/grpc-health-check
Teju Nareddy 0e37241a51 Omit client code due to bug in package.
Will re-add once package is updated.

Signed-off-by: Teju Nareddy <nareddyt@google.com>
2019-09-11 13:21:05 -07:00
..
test Get tests from the C-based library working and add corresponding gulp tasks 2017-09-13 13:54:13 -07:00
v1 removed all the deprecated new Buffer code and replace it with Buffer.from 2019-02-02 15:17:46 +02:00
LICENSE Don't fill in any templates in LICENSE files 2019-03-06 11:01:44 -08:00
README.md Omit client code due to bug in package. 2019-09-11 13:21:05 -07:00
gulpfile.ts Fix usage of linkSync 2019-04-24 17:44:49 -07:00
health.js refactor: use individual lodash packages for health check 2018-11-09 16:43:53 -08:00
package.json Add documentation for `grpc-health-check` 2019-09-11 12:15:49 -07:00

README.md

grpc-health-check

Health check client and service for use with gRPC-node.

Background

This package exports both a client and server that adhere to the gRPC Health Checking Protocol.

By using this package, clients and servers can rely on common proto and service definitions. This means:

  • Clients can use the generated stubs to health check any server that adheres to the protocol.
  • Servers do not reimplement common logic for publishing health statuses.

Installation

Use the package manager npm to install grpc-health-check.

npm install grpc-health-check

Usage

Server

Any gRPC-node server can use grpc-health-check to adhere to the gRPC Health Checking Protocol. The following shows how this package can be added to a pre-existing gRPC server.

// Import package
let health = require('grpc-health-check');

// Define service status map. Key is the service name, value is the corresponding status.
// By convention, the empty string "" key represents that status of the entire server.
const statusMap = {
  "ServiceFoo": proto.grpc.health.v1.HealthCheckResponse.ServingStatus.SERVING,
  "ServiceBar": proto.grpc.health.v1.HealthCheckResponse.ServingStatus.NOT_SERVING,
  "": proto.grpc.health.v1.HealthCheckResponse.ServingStatus.NOT_SERVING,
};

// Construct the service implementation
let healthImpl = new health.Implementation(statusMap);

// Add the service and implementation to your pre-existing gRPC-node server
server.addService(health.service, healthImpl);

Congrats! Your server now allows any client to run a health check against it.

Client

Any gRPC-node client can use grpc-health-check to run health checks against other servers that follow the protocol.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Apache License 2.0