gRPC monitors
Check a gRPC endpoint via the standard health protocol, or just prove it speaks gRPC.
A gRPC monitor connects to a host and port and, by default, calls the standard
gRPC Health Checking Protocol
(grpc.health.v1.Health/Check). The monitor is UP only when the server
answers SERVING.
Configuration
| Setting | Allowed values | Required |
|---|---|---|
host |
hostname or IP, up to 255 characters | yes |
port |
1–65535 | yes |
checkMode |
health (default) or connectivity |
no |
serviceName |
service to ask the health service about; empty means overall server health | no |
plaintext |
true to connect without TLS — default is false (TLS on) |
no |
skipTlsVerification |
true to accept self-signed or mismatched certificates |
no |
Health mode
The default. Glowo issues one Health/Check RPC per check:
SERVING→UPNOT_SERVING→DOWN— the server is reachable but declares itself unhealthy- an unknown
serviceName→DOWNwithGRPC_HEALTH_UNKNOWN_SERVICE - a server that does not implement the health service →
DOWNwithGRPC_HEALTH_UNIMPLEMENTED
That last case is deliberate: the monitor never silently falls back to a
connectivity check. If a deploy removed the health service, “UP” would quietly
stop meaning “the app says it is healthy” — exactly the drift a monitor exists
to catch. If your server does not expose grpc.health.v1, switch the monitor
to connectivity mode instead.
Leave serviceName empty to ask about the server as a whole; set it (for
example payments.v1.PaymentService) to track one service’s own status.
Connectivity mode
For servers without the health service. Glowo drives the connection to ready —
TCP connect, TLS handshake, HTTP/2 setup — and stops there. No RPC is made, so
nothing needs to be implemented server-side. UP means “this endpoint speaks
gRPC”, not “the application is healthy”.
TLS
TLS is on by default, and certificate expiry and issuer are captured on every
check, so the monitor’s certificate card and expiry warnings work exactly as
they do for HTTPS monitors. Set plaintext: true for servers listening
without TLS (common inside private networks), or skipTlsVerification: true
to monitor an endpoint with a self-signed certificate — expiry is still
captured either way TLS is used.
Timeouts
The shared timeout covers the whole check: connection, TLS handshake, and —
in health mode — the RPC round trip.