Skip to content

2.11UDP

What it checks#

A UDP monitor sends one datagram (a single UDP message) to a host and port, and waits for a reply. You can also require the reply to contain some text. Use it for UDP services that answer, such as DNS, NTP (time servers), STUN and game servers.

When it is up, degraded or down#

  • Up: a reply arrived within the timeout, it contains the expected text (if set), and the response-time assertion passed (if set).
  • Degraded: the reply was slower than your slow limit, if you set one.
  • Down: one of these:
    • udp <host:port>: no reply within <timeout>;
    • udp <host:port>: port unreachable (ICMP);
    • udp <host:port>: reply did not contain "<text>" (N bytes back);
    • a response-time assertion failed.

Configuration#

Dashboard fieldDefaultLimits and notes
nameEmptyRequired. Up to 200 characters, on one line.
check interval60 secondsAt least 1 second. Your plan's minimum interval still applies: below it the form shows Your plan checks at most every N seconds.
timeout10 secondsIn seconds. A value above 60 seconds counts as 60 seconds.
locationsNone (runs from us-west)Choose from the regions shown. The check runs from each one you pick.
on failure — notifyNone (all team channels)Pick channels to limit who is alerted. Shown only when your team has channels.
endpoint (host)EmptyRequired. Host only, such as ntp.acme.io.
endpoint (port)EmptyRequired. 1 to 65535.
probe (payload)EmptyThe datagram to send, as text. Up to 1,232 bytes. Empty sends a zero-length datagram. Sent exactly as typed; spaces are kept.
probe (expected reply)EmptyOptional. Text the reply must contain. Empty: any reply counts.
assertions — response-time only for udpNoneResponse time only.

Assertions supported#

response_time_ms only: the time until the reply arrived.

Example#

A text service that answers PONG to PING. In the dashboard, enter payload PING and expected reply PONG. Through the API, send the payload in base64:

API request body (CreateUdpMonitor)
json
{
  "name": "game.acme.io",
  "host": "game.acme.io",
  "port": 7777,
  "payload": "UElORw==",
  "expect": "PONG",
  "intervalSeconds": 60
}

Good to know#

  • The check is up only when the service replies. A host that silently drops the message reads as down. Point the monitor at a service that answers.
  • Many services ignore an empty or wrong message. Send a real request for the service. For binary requests, use the API, where payload is base64.
  • Only the first 4,096 bytes of the reply are searched for the expected text.

Last updated