Kubernetes alerts
that just work.
Event-driven monitoring for developers and startups on their first cluster. One Pod, one ConfigMap, ~64Mi of memory. Slack, email, and webhooks out of the box.
curl -fsSL https://kpulse.io/install.sh | bash// why kpulse
The gap before Prometheus.
Day-1 ready
Install, paste one Slack webhook, you have alerts on the 12 most common failure modes. No tuning weekend required.
No time-series stack
No Prometheus, no Grafana, no Alertmanager, no PVCs. kpulse listens to the Kubernetes API and sends.
Sane defaults
All 12 monitors on. Thresholds tuned to be silent on a healthy cluster. Dedupe and digest built-in.
// 12 monitors out of the box
The failures that wake teams up.
Each fires on a tuned threshold. Each can be silenced or rerouted via ConfigMap.
CrashLoopBackOff, OOMKilled, ImagePullBackOff
> 5 restarts in 15 min
Warning k8s Events, noise filtered
PVC > 80% warn, > 90% crit
DiskPressure, MemoryPressure, NotReady
rootfs/imagefs > 85% warn, > 92% crit
TLS Secret < 14d warn, < 3d crit
Deployment/StatefulSet rolling > 15 min
Job condition Failed=True
> 2 missed schedules
HPA pinned at maxReplicas > 30 min
desired != ready > 10 min
// install
Three commands. One alert pipeline.
- 1
Install
$ installcurl -fsSL https://kpulse.io/install.sh | bash - 2
Configure a channel
$ configurekubectl -n kpulse edit configmap kpulse-config # set cluster.name, enable a channel kubectl -n kpulse edit secret kpulse-secrets # add e.g. SLACK_WEBHOOK_URL kubectl -n kpulse rollout restart deploy/kpulse - 3
Test it
$ testkubectl -n kpulse port-forward svc/kpulse 8080:8080 & curl 'http://localhost:8080/test-channel?name=slack'
kubectl apply -f https://github.com/dnl555/kpulse/releases/latest/download/kpulse.yamlhelm install kpulse ./charts/kpulsegit clone … && make build image// channels
Ping the channel
of your choice.
Pick any subset. Every alert goes through the same dedupe and digest engine before it leaves the cluster.
kpulse IS
- Day-1 alerts on common failures
- Lightweight: 1 Pod, ~64Mi RAM
- Slack / SMTP / Webhook / Discord / Teams
- Sensible thresholds out of the box
- Dedupe + digest engine
kpulse is NOT
- Not a metrics store
- No PromQL or time-series
- No dashboard or UI in v1
- No silencing schedules / on-call
- Not a Prometheus replacement
Need those? Run Prometheus + Grafana + Alertmanager. kpulse covers the gap before you're ready for that stack — and keeps doing the noisy "did Kubernetes break again" work after.
// faq
Questions.
Does kpulse replace Prometheus?
No. It covers the alerting gap before you've set up Prometheus, and continues handling the noisy 'did Kubernetes break?' alerts alongside it.
How much does it cost to run?
One Pod, ~64Mi memory, ~10m CPU. On most clusters, the overhead is invisible.
What permissions does it need?
Read access to Pods, Events, PVCs, Nodes, Deployments, StatefulSets, Jobs, CronJobs, HPAs, DaemonSets, and Secrets (for TLS expiry checks).
Can I silence specific alerts?
Not via silencing rules. You can disable monitors entirely or tune thresholds in the ConfigMap. For full silencing, route to Alertmanager.
Is it open source?
Yes. MIT licensed. ~1500 LOC of Go in 7 packages. Issues and PRs welcome.
Stop discovering crashes
from your users.
One command. One Slack webhook. Twelve fewer pages at 3am.
curl -fsSL https://kpulse.io/install.sh | bash