Skip to content
Nominal

Monitors / UDP

UDP

Send a datagram to a host and port. The reply, if you asked for one, is `[BODY]`.

How it works

The probe opens a UDP socket to host:port. With no request body, a successful bind/connect is enough. With a body, that payload is written and the probe waits up to the timeout for a reply (first 1024 bytes become [BODY]). A timeout after send is a failure.

Target

host:port or udp://host:port. A port is required.

udp://dns.example.com:53

Type fields

FieldWhat it does
request_bodyOptional datagram. If set, the probe waits for a reply and stores it as [BODY].

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] < 50

Example conditions

[CONNECTED] == truelen([BODY]) > 0

GraphQL

type is Udp. Same fields as the admin, camelCase in the input (intervalSeconds, requestBody, probeIds).

mutation {
  createMonitor(input: {
    name: "NTP"
    type: Udp
    target: "udp://time.example.com:123"
    conditions: ["[CONNECTED] == true"]
  }) { id }
}

Terraform

Resource is nominal_monitor from returnearly/nominal. type is Udp. 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.

resource "nominal_monitor" "ntp" {
  name       = "NTP"
  type       = "Udp"
  target     = "udp://time.example.com:123"
  conditions = ["[CONNECTED] == true"]
}