Getting Started
๐ New to Kubernetes? No problem.
kwatch watches your cluster and sends you a friendly alert the moment something breaks โ with a plain-English explanation of what went wrong and how to fix it.
โจ 60 seconds to install. No backend. No dashboards. No YAML spaghetti.
๐ง What is kwatch?โ
kwatch is like a smart friend for your Kubernetes cluster:
- ๐ฅ Something crashes โ you get a message that says why (not just "pod is broken")
- ๐ Smart about noise โ groups related issues, ignores flapping, sends a digest when things get crazy
- ๐ง Explains itself โ every alert names the cause, the impact, and what recently changed
- โก Works in under a minute โ just one command and a config file
No Prometheus. No Grafana. No 50-step setup. Just alerts that make sense.
๐ kwatch vs the scary stuffโ
| โจ kwatch | ๐ฐ DIY Prometheus + Alertmanager | ๐ธ Heavy SaaS | |
|---|---|---|---|
| โฑ๏ธ Setup time | ~5 minutes | hours of YAML | agent + backend setup |
| ๐ฆ Size | ~20 MB single binary | whole monitoring stack | per-node agents + cloud costs |
| ๐ฌ Alerts | Self-explaining ("OOMKilled โ raise memory limit") | Rule-defined message | Depends on configuration |
| ๐๏ธ Storage | None (stateless) | Prometheus TSDB | Full retention (costly) |
| ๐ Learning curve | One ConfigMap | PromQL + alert rules | Platform-specific DSL |
๐จ Before vs Afterโ
| Raw kubectl output ๐คท | kwatch tells you ๐ก |
|---|---|
CrashLoopBackOff | ๐จ OOMKilled (memory limit: 512Mi) โ try raising limits.memory ยท here are the logs + events |
Error | ๐จ HTTP probe failing on :8080/healthz (exit 137) โ container ran out of memory |
๐ฏ What does it catch?โ
Every monitor below is on by default โ zero config needed:
| Signal | What kwatch does |
|---|---|
| ๐ฅ Pod crashes (CrashLoop, OOM, ImagePull, Error) | Container state + previous logs + events โ tells you why |
| โณ Pending pods (stuck Unschedulable) | Alerts after 300s stuck |
| ๐ฅ๏ธ Node issues (NotReady, Disk/Memory pressure) | Per-condition severity |
| ๐พ PVC running out of space | Warn at 80%, critical at 90% |
| โ Failed Jobs | JobFailed / JobSuspended |
| ๐ Stuck rollouts & StatefulSets | ProgressDeadlineExceeded โ deployment didn't finish |
| ๐ก DaemonSet pods not running | Unavailable pods detected |
| โฐ CronJob suspended or missing runs | Not scheduled in 24h? Alert. |
| ๐ HPA stuck at max replicas | After 20 minutes sustained |
| ๐ฃ Cluster autoscaler can't scale | FailedToScaleUp / NotTriggerScaleUp |
| ๐ TLS certs expiring | Enable if you want cert expiry warnings |
| ๐ Heartbeat (dead man's switch) | Enable to page you if kwatch goes down |
โ TLS and heartbeat are the only ones off โ everything else just works out of the box.
๐ Quick Start (under 60 seconds)โ
1. Create a config fileโ
# config.yaml
apiVersion: v1
kind: Namespace
metadata:
name: kwatch
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kwatch
namespace: kwatch
data:
config.yaml: |
alert:
slack:
webhook: "https://hooks.slack.com/services/..."
2. Apply itโ
kubectl apply -f config.yaml
3. Deploy kwatchโ
kubectl apply -f https://raw.githubusercontent.com/abahmed/kwatch/v0.11.0-rc.6/deploy/deploy.yaml
4. Check it's runningโ
kubectl get pods -n kwatch
That's it. You'll now get alerts in Slack when something breaks. ๐
๐ Next Stepsโ
- Installation โ full install guide with Helm, kubectl, and config options
- General Configuration โ all configuration options explained
- Configure Channels โ set up Slack, Discord, email, PagerDuty, and more
- Architecture โ how kwatch works under the hood