Skip to content

gRPC

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.

The monitor’s target is written as one string:

[scheme://]host:port[/service]
PartMeaning
schemegrpcs or https → TLS. grpc or http → plaintext. Omitted → TLS when the port is 443, plaintext otherwise.
host:portWhere the service listens. Without a port, 443 is used for TLS and 80 for plaintext.
/serviceOptional 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 TLS
grpcs://api.example.com/orders.v1.Orders one specific service
grpc://internal.svc:9090 plaintext, in-cluster
api.example.com:443 TLS inferred from the port
Health responseResult
SERVINGUp
NOT_SERVINGDown, with the reported status in the error
SERVICE_UNKNOWNDown — the name in /service isn’t registered on that server
UnimplementedUp — 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 errorDown

The retry window and the majority rule then apply exactly as for any other monitor — see Status & uptime.

SettingDescriptionDefault
Target[scheme://]host:port[/service]
PortOverrides the port in the targetfrom the target
IntervalCheck frequencyshortest your plan allows
TimeoutFixed check budget (not configurable)5s
RegionsWhere the check runs fromone, per your plan
  • 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 a grpcs:// one on the same service tell you whether a problem is in the transport or the app.

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.

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.