Monitors / Redis
Redis
Log in with a connection URL, then PING / INFO / DBSIZE or a command you supply.
How it works
Target is a Redis URL. The probe authenticates (AUTH password, or username + password), SELECTs the DB if the path is set, then either runs your command or the defaults: PING, INFO server, and DBSIZE. The JSON body includes pong, selected info keys, and dbsize — or result for a custom command.
rediss:// uses TLS (default port 6380; redis:// is 6379). Redis can use the same HTTP/SOCKS proxy as HTTP checks.
Target
Schemes: redis, rediss. Path is the logical database index. Password-only URLs use redis://:pass@host.
redis://:pass@cache.example.com:6379/0Type fields
| Field | What it does |
|---|---|
request_body | Optional Redis command (PING, INFO, DBSIZE, …). Tokenized and sent as RESP. |
verify_tls | When the URL is rediss://. Defaults to on. |
proxy_url | HTTP or SOCKS proxy for the outbound dial. |
Placeholders
Available on this type. See conditions for operators and pat() / has() / len() / any().
[CONNECTED] [RESPONSE_TIME] [IP] [BODY] [DOMAIN_EXPIRATION]
Defaults
New monitors of this type start with:
[CONNECTED] == true[RESPONSE_TIME] < 50Example conditions
[CONNECTED] == true[BODY].pong == true[BODY].role == masterGraphQL
type is Redis. Same fields as the admin, camelCase in the input (intervalSeconds, requestBody, probeIds).
mutation {
createMonitor(input: {
name: "Cache"
type: Redis
target: "redis://:secret@cache.example.com:6379/0"
conditions: ["[CONNECTED] == true", "[BODY].pong == true"]
}) { id }
}Terraform
Resource is nominal_monitor from returnearly/nominal. type is Redis. Shared arguments match the shared fields in snake_case (name, target, interval_seconds, probe_ids, channel_ids). Omitted conditions use the type defaults.
Type arguments: request_body, verify_tls, proxy_url. proxy_url is sensitive.
resource "nominal_monitor" "cache" {
name = "Cache"
type = "Redis"
target = "redis://:secret@cache.example.com:6379/0"
conditions = ["[CONNECTED] == true", "[BODY].pong == true"]
}