Skip to main content

💓 Heartbeat monitor (dead man's switch)

This is an optional watch-the-watcher check. An external service expects a regular ping from kwatch; if the pings stop, that service alerts you.

Sends periodic HTTP GET pings to an external health-check URL. If kwatch stops or crashes, the external monitor stops receiving pings and pages you.

This is useful for detecting when kwatch itself is down — a "watch the watcher" pattern.

How it works

kwatch ── GET https://hc-ping.com/your-uuid ──► Healthchecks.io
(every 300 seconds)

If kwatch crashes:
Healthchecks.io stops receiving pings
After grace period → sends you an alert (email, SMS, etc.)

Configuration

ParameterTypeDefaultDescription
heartbeatMonitor.enabledboolfalseEnable heartbeat pings.
heartbeatMonitor.intervalint (sec)300Seconds between pings (min: 1).
heartbeatMonitor.urlstring""Secret-backed ${file:/absolute/path} URL to ping.

Example with Healthchecks.io

Healthchecks.io is a free dead-man's switch service.

apiVersion: v1
kind: Secret
metadata:
name: kwatch
namespace: kwatch
stringData:
heartbeat-url: "replace-me"

Add the monitor settings through kwatch.sh's Configure settings flow (or merge them into the config file used by your supported installation):

heartbeatMonitor:
enabled: true
interval: 300
url: "${file:/config/heartbeat-url}"
  1. Sign up at Healthchecks.io
  2. Create a new check
  3. Copy the ping URL
  4. Configure kwatch as shown above
  5. In Healthchecks.io, set the grace period (e.g. 10 minutes)

Example with Better Uptime

heartbeatMonitor:
enabled: true
interval: 60
url: "${file:/config/heartbeat-url}"