> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tallwatch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitor types

> The seven check types Tallwatch offers and how each one is evaluated.

Tallwatch has seven monitor types. HTTP/HTTPS, TCP, DNS, SSL, Ping, and Keyword run end-to-end on the production Node probers and vote in [consensus](/incidents). Heartbeat is passive: your job pings Tallwatch, and Tallwatch alerts if the ping is late.

## Fully supported

These run on the probers and count toward consensus.

<ResponseField name="HTTP / HTTPS" type="shipped">
  Requests a URL and checks the response. Set the method, the status codes you accept, request headers and body, and assertions on the response (latency, body content, JSON path, headers). The probers record total response time and phase timing such as DNS, connection, TLS handshake, and transfer. See [Creating monitors](/monitors/creating-monitors).
</ResponseField>

<ResponseField name="TCP" type="shipped">
  Opens a connection to a host and port and reports whether it connects.
</ResponseField>

<ResponseField name="DNS" type="shipped">
  Resolves a hostname and checks the record (A, AAAA, CNAME, MX, TXT), optionally against an expected value.
</ResponseField>

<ResponseField name="Keyword" type="shipped">
  Fetches a URL and checks whether a keyword is present or absent. (The HTTP type also covers keyword checks through body assertions.)
</ResponseField>

<ResponseField name="SSL" type="shipped">
  Inspects a certificate and warns before expiry.
</ResponseField>

<ResponseField name="Ping (ICMP)" type="shipped">
  Sends echo requests to a host and records round-trip timing and packet loss.
</ResponseField>

<ResponseField name="Heartbeat" type="shipped">
  Expects your job to call a URL on a schedule, and alerts when a ping is late. Passive, so it has no "test" action.
</ResponseField>

<Note>
  Need a keyword or content check? Use a Keyword monitor, or an HTTP monitor with a `body_contains` or `body_regex` assertion. Both evaluate on the real probe path and vote in consensus.
</Note>
