💓 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
| Parameter | Type | Default | Description |
|---|---|---|---|
heartbeatMonitor.enabled | bool | false | Enable heartbeat pings. |
heartbeatMonitor.interval | int (sec) | 300 | Seconds between pings (min: 1). |
heartbeatMonitor.url | string | "" | 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}"
- Sign up at Healthchecks.io
- Create a new check
- Copy the ping URL
- Configure kwatch as shown above
- 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}"