As an API project, grpc-ecosystem/grpc-health-probe has picked up 1.6k stars on GitHub (Go). A command-line tool to perform health-checks for gRPC applications in Kubernetes and elsewhere
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
The grpc_health_probe utility allows you to query health of gRPC services that
expose service their status through the gRPC Health Checking Protocol.
grpc_health_probe is meant to be used for health checking gRPC applications in
Kubernetes, using the exec probes.
:warning: Kubernetes has now built-in gRPC health checking
capability as generally available. As a result, you might no longer need to use this tool and can use the native Kubernetes feature instead.
This tool can still be useful if you are on older versions of Kubernetes,
or using advanced configuration (such as custom metadata, TLS or finer timeout tuning),
or not using Kubernetes at all.
This command-line utility makes a RPC to /grpc.health.v1.Health/Check. If it
responds with a SERVING status, the grpc_health_probe will exit with
success, otherwise it will exit with a non-zero exit code (documented below).
$ grpc_health_probe -addr=localhost:9999 -connect-timeout 250ms -rpc-timeout 100ms
failed to connect service at "localhost:9999": context deadline exceeded
exit status 2
Installation
It is recommended to use a version-stamped binary distribution:
Choose a binary from the Releases page.
Installing from source (not recommended):
Make sure you have git and go installed.
Run: go install github.com/grpc-ecosystem/grpc-health-probe@latest
This will compile the binary into your $GOPATH/bin (or $HOME/go/bin).
Using the gRPC Health Checking Protocol
To make use of the grpc_health_probe, your application must implement the
gRPC Health Checking Protocol v1. This means you must register the
Health service and implement the rpc Check that returns a SERVING status.
Since the Health Checking protocol is part of the gRPC core, it has
packages/libraries available for the languages supported by gRPC:
Most of the languages listed above provide helper functions that hide
implementation details. This eliminates the need for you to implement the
Check rpc yourself.
Example: gRPC health checking on Kubernetes
Kubernetes now supports gRPC health checking. If your cluster is running a version that supports gRPC health checking, you can define a gRPC liveness probe in your Pod specification. For more information on how to define a gRPC liveness probe in Kubernetes, see the Kubernetes documentation.
However, if your Kubernetes version does not support gRPC health checking or if you want to use some advanced features that Kubernetes does not support, you can use grpc_health_probe to health-check your gRPC server. As a solution,
grpc_health_probe can be used for Kubernetes to health-check gRPC
servers running in the Pod.
You are recommended to use Kubernetes exec probes and define
liveness and/or readiness checks for your gRPC server pods.
You can bundle the statically compiled grpc_health_probe in your container
image. Choose a binary release and download it in your Dockerfile:
This approach provides proper readiness/liveness checking to your applications
that implement the gRPC Health Checking Protocol.
Health Checking TLS Servers
If a gRPC server is serving traffic over TLS, or uses TLS client authentication
to authorize clients, you can still use grpc_health_probe to check health
with command-line options:
Option
Description
-tls
use TLS (default: false)
-tls-ca-cert
path to file containing CA certificates (to override system root CAs)
-tls-client-cert
client certificate for authenticating to the server
-tls-client-key
private key for for authenticating to the server
-tls-no-verify
use TLS, but do not verify the certificate presented by the server (INSECURE) (default: false)
-tls-server-name
override the hostname used to verify the server certificate
Health checking TLS Servers with SPIFFE issued credentials
If your gRPC server requires authentication, you can use the following command line options and set the
SPIFFE_ENDPOINT_SOCKET
environment variable.
Option
Description
-spiffe
use SPIFFE Workload API to retrieve TLS credentials (default: false)
Other Available Flags
Option
Description
-v
verbose logs (default: false)
-connect-timeout
timeout for establishing connection
-rpc-timeout
timeout for health check rpc
-rpc-header
sends metadata in the RPC request context (default: empty map)
-user-agent
user-agent header value of health check requests (default: grpc_health_probe)
-service
service name to check (default: "") - empty string is convention for server health
-gzip
use GZIPCompressor for requests and GZIPDecompressor for response (default: false)
-version
print the probe version and exit
Example:
Start the route_guide example
server
with TLS by running:
go run server/server.go -tls
Run grpc_client_probe with the CA
certificate
(in the testdata/ directory) and hostname override the
cert is signed for:
How active is development on grpc-ecosystem/grpc-health-probe?
The most recent commit recorded on grpc-ecosystem/grpc-health-probe was 3 months ago, based on the GitHub push timestamp. The repository has 209 forks — one of the better signals of community interest.
How does grpc-ecosystem/grpc-health-probe compare to other API projects?
grpc-ecosystem/grpc-health-probe is tracked by TopGit in the API category, with 1.6k GitHub stars and written in Go. Browse the API topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does grpc-ecosystem/grpc-health-probe have?
grpc-ecosystem/grpc-health-probe has 1.6k GitHub stars — refresh the page for the live number, or check github.com/grpc-ecosystem/grpc-health-probe. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is grpc-ecosystem/grpc-health-probe open source?
Yes — grpc-ecosystem/grpc-health-probe ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/grpc-ecosystem/grpc-health-probe.
What is grpc-ecosystem/grpc-health-probe?
grpc-ecosystem/grpc-health-probe (grpc-ecosystem/grpc-health-probe) is a Go project on GitHub. From the project's own README: A command-line tool to perform health-checks for gRPC applications in Kubernetes and elsewhere
Where do I read more about grpc-ecosystem/grpc-health-probe?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/grpc-ecosystem/grpc-health-probe is the definitive source.
Read full README in the tab above.
Still deciding about grpc-health-probe?
One click hands the question to an AI along with this page — see what it says about grpc-health-probe.