Docs / Probes

TCP probe

Probes 3 min read

Check that a host is accepting connections on a specific port: databases, mail, SSH, and more.

What it is

Your database, mail server, or SSH endpoint can stop accepting connections, and nothing that speaks HTTP will notice. A TCP probe watches those. It opens a connection to a host and port on a schedule and reports up if the connection is accepted, which makes it the right tool for anything that listens on a port but doesn’t necessarily speak HTTP: a database, a mail server, an SSH daemon, a message broker, or a game server.

An HTTP probe asks whether a URL responded correctly. A TCP probe asks the more basic question: is anything listening on this port, and will it accept a connection?

Uptimeprobe opens a TCP connection to a host and port. If the connection is accepted the probe is Up; if it is refused or times out the probe is Down. Uptimeprobe scheduled check Service db.example.com:5432 TCP connect Accepted → Up Refused or timeout → Down
A TCP probe only checks that the port accepts a connection. It never sends or reads application data.

When to use it

Reach for a TCP probe when

  • You’re watching a non-HTTP service: PostgreSQL, MySQL, Redis, SMTP, IMAP, SSH, a game server, or any custom TCP listener.
  • You need to confirm a port is open and accepting connections.
  • An HTTP probe isn’t an option because the service doesn’t serve HTTP.

Use a different probe when

  • The service does speak HTTP and you want to check status codes or latency. An HTTP probe tells you more.
  • You want warning before your domain registration expires. That’s the Domain probe.

How it works

Uptimeprobe opens a TCP connection to host:port on your interval. If the connection is accepted, the check succeeds and records how long it took, then closes. If it’s refused, times out, or the host won’t resolve, the check fails. A TCP probe never sends or reads application data. It only confirms the port accepts a connection.

Configuring a TCP probe

Create one from Probes, then Add probe, and pick TCP.

FieldWhat it doesNotes
NameA label for the probeRequired, 1 to 255 characters
HostThe hostname or IP to connect toJust the host, with no scheme, like db.example.com
PortThe TCP port to connect toBetween 1 and 65535 (defaults to 443)
IntervalHow often to check30s, 1m, or 5m

TCP probes use a 5-second connect timeout. If the connection isn’t established inside that window, the check fails.

How status is determined

Status comes from your recent checks:

  • Down: several checks in a row have failed (connection refused, timed out, or the host didn’t resolve).
  • Degraded: recent checks are intermittently failing, or connections are running slow.
  • Up: the port is reliably accepting connections.
  • No data: no recent check has reported, so status is unknown.

Next steps

Create an account and add a TCP probe for each service you depend on. Watching an HTTP service or a domain too? See the HTTP and Domain probes.