💓 Heartbeat Monitor (dead man's switch)
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 | "" | External URL to ping (e.g. https://hc-ping.com/your-uuid). |
Example with Healthchecks.io
Healthchecks.io is a free dead-man's switch service.
apiVersion: v1
kind: Namespace
metadata:
name: kwatch
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kwatch
namespace: kwatch
data:
config.yaml: |
heartbeatMonitor:
enabled: true
interval: 300
url: "https://hc-ping.com/your-uuid-here"
- 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: "https://betteruptime.com/api/v1/heartbeat/your-heartbeat-key"