Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

grpc-ts-health-check

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

grpc-ts-health-check

An implementation of gRPC health checks, written in typescript.

  • 2.0.6
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

gRPC Health Check

License Current Version npm

An implementation of gRPC health checks, written in typescript.

It is assumed that you are using the grpc library.

Installation

npm install grpc-ts-health-check --save

Install the grpc library:

npm install grpc --save

Dependencies

  • Google Protobuf: Protocol Buffers - Google's data interchange format.
  • gRPC Boom: A zero dependency library to help create gRPC-friendly error objects.

Usage

Methods

Below is a list of available methods:

watch(request)

Set the initial status of the service and continues to watch for any changes.

  • request - the HealthCheckRequest object.
const healthClient = new HealthClient(`${host}:${port}`, grpc.credentials.createInsecure());
const request = new HealthCheckRequest();
request.setService(serviceName);
const healthStream = healthClient.watch(request);
healthStream.on('data', (response: HealthCheckResponse) => {
  AppLogger.logger.debug(`Health Status: ${response.getStatus()}`);
});

check(request)

Checks the status of the service once.

  • request - the HealthCheckRequest object.
const healthClient = new HealthClient(`${host}:${port}`, grpc.credentials.createInsecure());
const request = new HealthCheckRequest();
request.setService(serviceName);
healthClient.check(request, (error: Error | null, response: HealthCheckResponse) => {
  if (error) {
    AppLogger.logger.error('Health Check Failed', error);
  } else {
    AppLogger.logger.debug(`Health Status: ${response.getStatus()}`);
  }
});

Example

import * as grpc from 'grpc';
import { GrpcHealthCheck, HealthCheckResponse, HealthService } from 'grpc-ts-health-check';

const serviceName = 'auth.Authenticator';
const healthCheckStatusMap = {
  serviceName: HealthCheckResponse.ServingStatus.UNKNOWN
};

function start(): grpc.Server {
  // Create the server
  const server: grpc.Server = new grpc.Server();

  // Register the health service
  const grpcHealthCheck = new GrpcHealthCheck(healthCheckStatusMap);
  server.addService(HealthService, grpcHealthCheck);

  // Bind and start the server
  server.bind('localhost:9090', grpc.ServerCredentials.createInsecure());
  server.start();

  // Create the health client
  const healthClient = new HealthClient(`${host}:${port}`, grpc.credentials.createInsecure());
  const request = new HealthCheckRequest();
  request.setService(serviceName);

  // Watch health status - streaming request
  // This will set the initial health status
  // and continue to watch the service for changes.
  const healthStream = healthClient.watch(request);
  healthStream.on('data', (response: HealthCheckResponse) => {
    AppLogger.logger.debug(`Authenticator Service: Health Status: ${response.getStatus()}`);
  });

  // Check health status - single request
  // This will provide the current health status
  // of the service when the request is executed.
  setTimeout(() => {
    healthClient.check(request, (error: Error | null, response: HealthCheckResponse) => {
      if (error) {
        AppLogger.logger.error('Authenticator Service: Health Check Failed', error);
      } else {
        AppLogger.logger.debug(
          `Authenticator Service: Health Check Status: ${response.getStatus()}`
        );
      }
    });
  }, 5000);
  return server;
}

Keywords

FAQs

Package last updated on 30 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc