Skip to content

Protocols

AmirVoid12 edited this page Sep 18, 2026 · 1 revision

Protocols

Protocol url format Example Success condition
http / https hostname or full URL example.com/health HTTP status below 400
tcp host:port example.com:443 Connection established
udp host:port 1.1.1.1:53 A response is received
dns hostname example.com At least one A/AAAA record found
ping plain IP address 1.1.1.1 Matching ICMP echo reply received

http / https

Sends a GET request. The probe is ok when the status code is below 400.

pf.watch({ protocol: "https", url: "example.com/health", interval: 10000 });

tcp

Opens a TCP connection and measures the time to connect.

pf.watch({ protocol: "tcp", url: "example.com:443" });

An invalid host:port format gives the error Invalid host:port format. A connection that does not open in time gives TCP connection timeout.

udp

Sends a small UDP packet and waits for a response.

pf.watch({ protocol: "udp", url: "1.1.1.1:53" });

UDP is connectionless. A target that silently drops the packet looks the same as a target that is down.

dns

Resolves A/AAAA records for a hostname.

pf.watch({ protocol: "dns", url: "example.com" });

ping

Raw ICMP echo request, done by a native C addon.

pf.watch({ protocol: "ping", url: "1.1.1.1" });
  • Linux only for now
  • IP addresses only, hostnames are not resolved
  • Works without root on most systems

Full details: ICMP-Ping.

Clone this wiki locally