Ping (ICMP) and TCP port monitoring

Monitor any host or network service that doesn't speak HTTP, and get alerted the moment it stops responding.

HTTP monitors cover websites and APIs, but plenty of infrastructure never answers an HTTP request: bare servers, databases, mail servers, game servers, VPN endpoints. Ping and port monitors cover these cases. A ping (ICMP) monitor tells you whether a host is reachable at all. A port monitor tells you whether a specific service on that host is accepting connections.

Use them when you want to know that:

  • A server or network appliance is up and reachable, independently of any web service it runs.
  • A database, cache, or mail server is accepting connections on its port.
  • A game server or any custom TCP service is listening where clients expect it.

Create a ping (ICMP) monitor

  1. Open the new monitor form

    Go to your dashboard and click the New monitor card.

  2. Name the monitor

    Give it a readable name, for example "DB server" or "Office gateway".

  3. Select the ICMP protocol

    Choose ICMP in the protocol list.

  4. Enter a hostname or IP address

    For example db.example.com or 203.0.113.10. Don't include http:// or https://, those prefixes are for HTTP monitors.

  5. Save

    The first check runs immediately and you're redirected to the monitor's detailed view.

ICMP performs a simple echo request, commonly called a ping. The host either returns an echo response, in which case it's considered up, or it doesn't, in which case the check fails. There's nothing else to configure: no status codes, no request bodies.

The create monitor form in ping mode with an IP address and regions
A ping monitor: name, IP address, and the ICMP protocol selected

Create a port monitor

  1. Open the new monitor form

    Go to your dashboard and click the New monitor card.

  2. Select the Port protocol

    Choose Port in the protocol list.

  3. Enter a hostname or IP address

    The same way as for ICMP.

  4. Enter the port number

    For example 5432 for PostgreSQL. The port is required for this protocol.

  5. Save

    Checks start right away.

A port monitor attempts a TCP connection to the given host and port. If the connection is accepted, the service is considered up. If it's refused or times out, the check fails and, once confirmed, alerts go out.

Regions and check intervals

Ping and port monitors use the same regions and scheduling as every other monitor. Checks are performed from one selected region at a time, rotating between them:

  1. Minute 1: check from Paris: OK
  2. Minute 2: check from Frankfurt: OK
  3. Minute 3: check from London: not OK. Hyperping immediately double-checks from the other selected regions. If they all fail too, the downtime is confirmed and alerts are sent.

This double-checking matters for network-level monitors: a single region can lose a route to your host while the rest of the internet reaches it fine. Requiring confirmation from other regions filters out these localized blips.

The default check interval is 30 seconds. Selecting regions close to your infrastructure keeps latency measurements meaningful, since checks from far away include the round trip in their timings.

Common examples

ServiceProtocolPort
SMTP (mail server)Port25 or 587
PostgreSQLPort5432
RedisPort6379
SSHPort22
Server or gateway reachabilityICMPn/a

Only expose and monitor ports that are meant to be reachable from the internet. If your database only listens on a private network, Hyperping's pingers won't be able to reach it, and it's usually better kept that way.

Limitations compared to HTTP monitors

Ping and port monitors check reachability, not correctness. The HTTP advanced settings don't apply here: there's no expected status code and no text body assertion. A port monitor will happily report your database as up as long as something accepts the TCP connection, even if the service behind it is misbehaving.

Two ways to close that gap:

  • If the service has any HTTP surface, such as an admin endpoint or a health endpoint, prefer an HTTP monitor with an expected status code or body assertion.
  • For correctness checks that only your own code can perform, run a periodic script that queries the service and pings a healthcheck on success. You get alerted when the script stops reporting in.

API and Terraform

Both monitor types are available through the create monitor API. Set protocol to icmp or port, pass the hostname in url, and include the port number when the protocol is port:

curl -X POST https://api.hyperping.io/v1/monitors \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "PostgreSQL primary",
    "url": "db.example.com",
    "protocol": "port",
    "port": 5432,
    "regions": ["paris", "frankfurt", "london"],
    "check_frequency": 30
  }'

If you manage your monitoring as code, the Terraform provider exposes the same fields on the hyperping_monitor resource.

Next steps