In Hyperping, TCP monitoring is the Port protocol: give it a host and a port, such as db.example.com and 5432, and each check tries to open a connection. An accepted connection is up. A refused or timed-out connection fails the check, and once other regions confirm it, an outage opens and your alerts go out. Port monitors run every 30 seconds on paid plans, every 5 minutes on Free, and can use IPv6.
A successful check proves three things: the host is reachable from the internet, something is listening on the port, and it completed the TCP handshake. It doesn't prove the service behind the port works. A PostgreSQL server that accepts connections but rejects every login, or a mail server that answers with an error, still passes. For those, pair the port check with an application-level check, like an HTTP health check that runs a query.
Only monitor ports that are meant to be reachable from outside. If your database port is open to the internet just so it can be monitored, close it, and check the database through an internal health endpoint instead.
A ping (ICMP) check tells you the host answers network packets. A TCP check tells you a specific service is accepting connections. A server can answer pings while its database has crashed, and many cloud firewalls block ICMP entirely, which makes a healthy host look down. When you have a choice, monitor the port.
http://, and the port.HTTP monitoring sends a request and checks the response: status code, content, and response time. TCP monitoring only checks that a connection opens. Use HTTP for websites and APIs, TCP for services that don't speak HTTP.
Not with a TCP check, because UDP has no connection to open. Monitor it through an HTTP health endpoint on the same host, or have the service send a heartbeat.
Usually a firewall or security group that only allows known IP addresses. Allow the monitoring regions' IPs, or monitor an endpoint that is public by design.