Skip to main content
Learn more about gRPC Monitors in the gRPC monitor overview.
Use gRPC Monitors to verify that your gRPC services are reachable, responding correctly, and meeting performance expectations. Monitors run in two modes:
  • BEHAVIOR — Invokes a unary gRPC method and asserts on the response
  • HEALTH — Queries the standard grpc.health.v1.Health/Check endpoint
Before creating gRPC Monitors, ensure you have:
  • An initialized Checkly CLI project
  • The hostname and port of the gRPC service you want to monitor
  • In BEHAVIOR mode: the fully-qualified method name, and either server reflection enabled on the target or an inline .proto file
For additional setup information, see CLI overview.

Configuration

gRPC monitors have their own gRPC-specific settings, plus the standard monitor options shared across all check types.

GrpcMonitor Options

request
object
required
gRPC connection and call configuration.Usage:
Parameters:
request.grpcConfig
object
required
gRPC-specific call configuration nested inside request.Parameters:
degradedResponseTime
number
default:"10000"
Response time in milliseconds at which the monitor is marked as degraded (warning state). Maximum: 180,000.Usage:
maxResponseTime
number
default:"20000"
Response time in milliseconds at which the monitor is marked as failed. Maximum: 180,000.Usage:

GrpcMonitor Assertions

Use GrpcAssertionBuilder to define assertions for the request of a GrpcMonitor. The following sources are available:
  • responseTime(): Assert the total response time (DNS + connect + call) in milliseconds
  • statusCode(): Assert the numeric gRPC status code (0 = OK, 14 = UNAVAILABLE, etc.)
  • healthCheckStatus(): Assert the health status by its numeric value (HEALTH mode). The runner evaluates this as a number — not a string. Enum mapping: UNKNOWN=0, SERVING=1, NOT_SERVING=2, SERVICE_UNKNOWN=3
  • responseMessage(property?): Assert against the JSON response body (BEHAVIOR mode), with an optional JSON path (e.g. '$.name')
  • textBody(property?): Assert against the raw response body as text
  • responseMetadata(property?): Assert against response metadata (header) values returned by the server, identified by key
Here are some examples:
  • Assert the call returns gRPC OK (code 0):
  • Assert the health check reports SERVING (numeric target required — the runner does not accept string labels):
  • Assert a specific field in the JSON response body:
  • Assert the total response time:
  • Assert a response metadata header value:
Learn more in our docs on Assertions.

General Monitor Options

name
string
required
Friendly name for your gRPC Monitor displayed in the Checkly dashboard and used in notifications.Usage:
frequency
Frequency
How often the gRPC Monitor should run. Use the Frequency enum to set the check interval.Usage:
Available frequencies: EVERY_10S, EVERY_20S, EVERY_30S, EVERY_1M, EVERY_2M, EVERY_5M, EVERY_10M, EVERY_15M, EVERY_30M, EVERY_1H, EVERY_2H, EVERY_3H, EVERY_6H, EVERY_12H, EVERY_24H
locations
string[]
default:"[]"
Array of public location codes where the gRPC Monitor runs from. Multiple locations provide geographic coverage.Usage:
activated
boolean
default:"true"
Whether the gRPC Monitor is enabled and will run according to its schedule.Usage:

Examples