gRPC
Overview
Section titled “Overview”The gRPC monitor calls the standard grpc.health.v1.Health/Check method on
your service and reads back its serving status. Unlike a TCP
check on the same port, this proves the whole stack works —
TCP, TLS, HTTP/2 and gRPC itself — and that the service says it is serving.
Available on the Pro plan and above.
Target format
Section titled “Target format”The monitor’s target is written as one string:
[scheme://]host:port[/service]| Part | Meaning |
|---|---|
| scheme | grpcs or https → TLS. grpc or http → plaintext. Omitted → TLS when the port is 443, plaintext otherwise. |
| host:port | Where the service listens. Without a port, 443 is used for TLS and 80 for plaintext. |
| /service | Optional service name passed in the health request. Leave it out for the server’s overall health, per the health-checking protocol. |
Examples:
grpcs://api.example.com:443 overall server health, over TLSgrpcs://api.example.com/orders.v1.Orders one specific servicegrpc://internal.svc:9090 plaintext, in-clusterapi.example.com:443 TLS inferred from the portHow a result is decided
Section titled “How a result is decided”| Health response | Result |
|---|---|
SERVING | Up |
NOT_SERVING | Down, with the reported status in the error |
SERVICE_UNKNOWN | Down — the name in /service isn’t registered on that server |
Unimplemented | Up — the server answered over gRPC but exposes no health service. The transport, HTTP/2 and gRPC stack all work, which is what an uptime check asserts; the error field records it so you can see it in the event log. |
| Connect, TLS or timeout error | Down |
The retry window and the majority rule then apply exactly as for any other monitor — see Status & uptime.
Settings
Section titled “Settings”| Setting | Description | Default |
|---|---|---|
| Target | [scheme://]host:port[/service] | — |
| Port | Overrides the port in the target | from the target |
| Interval | Check frequency | shortest your plan allows |
| Timeout | Fixed check budget (not configurable) | 5s |
| Regions | Where the check runs from | one, per your plan |
Use cases
Section titled “Use cases”- Internal APIs — A gRPC backend that has no HTTP surface to check.
- Service meshes — Confirm a specific service name is registered and serving, not just that the port accepts connections.
- TLS termination — A plaintext
grpc://target and agrpcs://one on the same service tell you whether a problem is in the transport or the app.
Private services
Section titled “Private services”A gRPC service that isn’t reachable from the internet is monitored from a private agent — the check is identical, only the agent doing it changes. Public regions refuse targets that resolve to private addresses.
Metrics
Section titled “Metrics”The full call duration (connect + TLS + health call) is recorded on every check and feeds the same latency chart, percentiles and alerts as an HTTP monitor.