- BEHAVIOR — Invokes a unary gRPC method and asserts on the response
- HEALTH — Queries the standard
grpc.health.v1.Health/Checkendpoint
Prerequisites
Prerequisites
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 a service definition. Use server reflection, an inline
.protofile, or a compiled FlatBuffers.bfbsschema. - For FlatBuffers: install the
flatccompiler
Use a FlatBuffers schema
Checkly consumes a compiled binary FlatBuffers schema (.bfbs), not the source .fbs file. Compile your schema locally:
Terminal
schema.bfbs. The --bfbs-builtins flag preserves attributes used for streaming and nested FlatBuffers fields. Load that binary file as base64 in your monitor:
grpc-flatbuffers.check.ts
Do not set
serviceDefinition or protoContent for FlatBuffers. The compiled bfbsContent provides the service definition..fbs source whenever it changes. Checkly uploads the compiled .bfbs content and does not compile the source schema during a test or deployment.
Configuration
gRPC monitors have their own gRPC-specific settings, plus the standard monitor options shared across all check types.- gRPC Monitor Settings
- General Monitor Settings
GrpcMonitor Options
object
required
gRPC connection and call configuration.Usage:Parameters:
object
required
gRPC-specific call configuration nested inside
request.Parameters:number
default:"10000"
Response time in milliseconds at which the monitor is marked as degraded (warning state). Maximum: 180,000.Usage:
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 millisecondsstatusCode(): 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=3responseMessage(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 textresponseMetadata(property?): Assert against response metadata (header) values returned by the server, identified by key
- 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:
General Monitor Options
string
required
Friendly name for your gRPC Monitor displayed in the Checkly dashboard and used in notifications.Usage:
Frequency
How often the gRPC Monitor should run. Use the Available frequencies:
Frequency enum to set the check interval.Usage: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_24Hstring[]
default:"[]"
Array of public location codes where the gRPC Monitor runs from. Multiple locations provide geographic coverage.Usage:
boolean
default:"true"
Whether the gRPC Monitor is enabled and will run according to its schedule.Usage:
Examples
- Health check
- Unary method (proto file)
- Authenticated with metadata