Skip to main content

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 minuteshours of YAMLagent + backend setup
๐Ÿ“ฆ Size~20 MB single binarywhole monitoring stackper-node agents + cloud costs
๐Ÿ’ฌ AlertsSelf-explaining ("OOMKilled โ€” raise memory limit")Rule-defined messageDepends on configuration
๐Ÿ—„๏ธ StorageNone (stateless)Prometheus TSDBFull retention (costly)
๐Ÿ“š Learning curveOne ConfigMapPromQL + alert rulesPlatform-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:

SignalWhat 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 spaceWarn at 80%, critical at 90%
โŒ Failed JobsJobFailed / JobSuspended
๐Ÿš€ Stuck rollouts & StatefulSetsProgressDeadlineExceeded โ€” deployment didn't finish
๐Ÿ“ก DaemonSet pods not runningUnavailable pods detected
โฐ CronJob suspended or missing runsNot scheduled in 24h? Alert.
๐Ÿ“ˆ HPA stuck at max replicasAfter 20 minutes sustained
๐Ÿ“ฃ Cluster autoscaler can't scaleFailedToScaleUp / NotTriggerScaleUp
๐Ÿ”’ TLS certs expiringEnable 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โ€‹