Skip to content

TCP Port Monitoring ​

Monitors TCP port availability and response time. Use this for non-HTTP services like databases, mail servers, message brokers, or any custom application that listens on a TCP port.

How It Works ​

Hoppla opens a TCP connection to the specified host and port. If the connection is established within the timeout period, the port is considered reachable. The response time measures how long the TCP handshake takes to complete.

By default, TCP monitoring does not send any application-layer data — it only verifies that the port is open and accepting connections. Optionally, you can send a probe string after connecting and assert on the response (see send_string / expected_response below).

Configuration ​

SettingDescriptionDefault
HostHostname or IP address to connect toMonitor URL host
PortTCP port number (1-65535)Monitor URL port, or 80 if none
TimeoutMaximum time to wait for connection (seconds)10
Send stringOptional probe string sent after connecting (max 1000 chars; CR/LF are stripped)(none)
Expected responseOptional substring matched case-insensitively against the response/banner — a mismatch fails the check(none)
Check intervalHow often to check the port60 seconds

If you omit the port, Hoppla uses the port from the monitor URL, or falls back to 80. The timeout is clamped to a maximum of 30 seconds at execution time, even though larger values are accepted at configuration.

Results ​

FieldDescription
StatusWhether the connection succeeded or failed
Response timeTCP handshake duration (ms)
Welcome messageThe banner the service returned on connect, if any (sanitized and truncated)
ErrorConnection error details if the check failed (timeout, refused, unreachable, or expected response not found)

Example Result -- Success ​

TCP check: mail.example.com:587
  Status:        Connected
  Response time: 12ms

Example Result -- Failure ​

TCP check: mail.example.com:587
  Status:        Failed
  Error:         Connection refused
  Response time: --

Alerts ​

EventTriggerSeverity
incident.createdTCP connection fails (refused, timeout, or unreachable)Incident

An incident is opened when the port becomes unreachable and resolved automatically when connectivity is restored. Like uptime checks, TCP checks use dual-check verification -- a single failure is re-verified from a second location before triggering an alert.

Common Use Cases ​

ServiceDefault PortNotes
SMTP (submission)587Outgoing mail server
IMAP993 (TLS)Incoming mail server
POP3995 (TLS)Incoming mail server
RabbitMQ5672Message broker
Elasticsearch9200Search engine
HTTPS443Web server socket
Custom applicationAnyYour own services

Blocked ports ​

To prevent the platform from being used for port scanning, the following ports are blocked and cannot be configured for a TCP check: 22 (SSH), 23 (Telnet), 25 (SMTP), 110 (POP3 plaintext), 143 (IMAP plaintext), 3306 (MySQL), 5432 (PostgreSQL), 6379 (Redis), 11211 (Memcached), 27017 (MongoDB). To monitor a database or cache, monitor a port your application exposes instead, or use an HTTP uptime or application health check against a service that fronts it.

When to Use TCP vs. Uptime ​

  • Use TCP monitoring when the service does not speak HTTP (databases, mail servers, SSH, custom protocols)
  • Use uptime monitoring when the service has an HTTP/HTTPS endpoint you want to validate
  • Use both when you want to monitor the network-level port and the HTTP application separately

Security Note ​

TCP monitoring verifies that a port accepts connections and, optionally, sends a probe string and asserts on the response. It does not authenticate or send credentials. To prevent abuse for port scanning, a set of sensitive service ports (SSH, Telnet, SMTP, plaintext POP3/IMAP, and common database/cache ports — see Blocked ports) cannot be monitored.