Skip to content
Nominal

Monitors

Monitor configuration

Pick a type, point it at a target, write conditions. Shared fields are the same for every type. The request options change with the type.

Shared fields

These apply to every monitor. Type-specific fields (method, DNS query, connection URL, heartbeat URLs) are on each type page. In Terraform the resource is nominal_monitor; group is deprecated, use tags.

FieldWhat it does
nameShown in the admin, alerts, badges, and status pages.
descriptionOptional notes: who owns it, what to do when it fails.
tagsLabels for filtering in the admin and GraphQL (monitors(tag: "api")).
enabledDisabled monitors are not dispatched.
interval_secondsHow often to check. Minimum 10s, or 300s (5m) if a [DOMAIN_EXPIRATION] condition is present.
timeout_secondsHow long the probe waits. Outbound checks only.
ip_familyAny, Ipv4, or Ipv6. Outbound checks only.
retention_daysHow long raw check results are kept. Aggregates stay for uptime and latency badges.
probesWhich regions run the check. Each probe has a queue such as checks.us-east. Terraform: probe_ids (omit to attach default probes).
notificationChannelsWhere alerts go. Thresholds live on the monitor–channel link. Terraform: channel_ids on nominal_monitor.

How a check is judged

Outbound monitors need at least one condition in the admin. Every listed expression must pass. If you create a monitor through GraphQL with no conditions, Nominal treats it as healthy when the probe connected — and, for HTTP, when the status is below 400.

Heartbeats have no conditions. Success is “a ping arrived within the interval,” or “the job that called /start finished in time.”

Types