Hesklo opens a connection to a host and port and reports whether it was accepted. It is the right check for anything that listens but does not speak HTTP: a database, a cache, a message broker, a mail server.
A TCP check is deliberately shallow. It tells you the service is up and accepting work, which for most infrastructure is the question that matters.
Postgres, MySQL, MongoDB and anything else that binds a port. Know it is accepting connections before your application finds out.
Redis, Memcached, RabbitMQ, Kafka. Services that rarely have a health endpoint but always have a port.
SMTP, IMAP and submission ports, checked the same way a client would reach them.
Anything behind your own network that speaks a custom protocol. No parser needed, just a successful connection.
Confirm port 22 is reachable as a lightweight precursor to a full SSH diagnostic check.
Check individual backends directly, so you see a single node fail even while the pool still serves traffic.
Decide how long to wait for the handshake. A service under load may be slow without being down.
Require several refused connections in a row before the monitor counts as down.
Test the port on demand and see the exact result, without waiting for the next scheduled run.
Pause during planned work so a known restart pages nobody, then resume automatically.
Three monitors are free forever. Add a TCP check and draw what happens when the connection is refused.