Heartbeat Monitor

Heartbeat monitors invert the normal monitoring flow. Instead of Testable runners calling your service, your service sends an HTTP POST ping to a unique Testable URL. If pings stop arriving on time, or the number of active sources falls outside the configured range, Testable opens an incident.

Heartbeat monitor detail page showing status, last ping, ping URL, active source counts, and metrics

Configuration

Heartbeat monitors do not have schedules or runner regions. The monitored application is responsible for sending pings.

Sending Pings

The monitor detail page shows the ping URL and copy action. Send an HTTP POST request to that URL from each job, service, or worker instance.

Single Source

curl -X POST https://heartbeat.testable.io/YOUR-HEARTBEAT-ID

Cluster Source Tracking

Pass a source query parameter to identify each instance in a cluster. Testable tracks the most recent ping per source and displays active source counts in the monitor list and detail page.

curl -X POST "https://heartbeat.testable.io/YOUR-HEARTBEAT-ID?source=worker-01"

Metrics in the Request Body

When metric capture is enabled, send a JSON object in the request body. Values are converted into metrics and can be selected in charts.

curl -X POST "https://heartbeat.testable.io/YOUR-HEARTBEAT-ID?source=worker-01" \
  -H "Content-Type: application/json" \
  -d '{"freeMemory[bytes]": 702853712, "cpu": 33, "systemLoadAverage": 1.2}'

Viewing Heartbeat Data

Heartbeat monitor details show current status, last ping, active source count, uptime stats, the POST URL, active count rules, metric charts, incidents, activity, pings, and comments.

Heartbeat pings table showing timestamps, sources, and JSON data

Pings Tab

The Pings tab lists recent heartbeat pings with timestamp, source, and truncated data. Large JSON bodies can be opened in a viewer for inspection.

Incidents

Heartbeat incident pages show timing plus heartbeat-specific details: pings at incident start, pings at resolution, and the monitor configuration that was in effect.

Use Cases

Best Practices

Related Topics