Budgets, alerts and notifications
Configure budgets with run-rate forecasts, alert rules and anomaly detection, and route each notice to Slack, Microsoft Teams, email or a webhook.
On this page
Budgets
- Source: Kubernetes allocation or the cloud bill.
- Scope: cluster, namespace, environment, account and team for allocation; cluster, environment, account, service and region for the bill.
- Period: monthly, quarterly or yearly.
- Thresholds: 50, 80 and 100% by default, each notified once per period.
- Forecast: spend to date plus the last 7 days' run rate for the remaining days.
Alert rules
| Rule | Fires when |
|---|---|
| Spend | Month to date or the last N days is above a limit |
| Spend increase | Spend rose by a percentage against the previous equal window, optionally with a minimum change in amount |
| Efficiency | Cost-weighted efficiency is below a target |
| Anomaly | New open anomalies at or above a severity |
| Agent | A cluster has not sent a snapshot for N hours (default 3) |
Anomalies
Baseline is the median of the prior 14 days (at least 7 days needed). A spike needs $50 and 30% above the baseline, and a robust score of 3 or more, where the score is the delta divided by the larger of 1.4826 x MAD, 5% of the median or $1.
Channels
| Channel | Details |
|---|---|
| Slack | Incoming webhook on hooks.slack.com |
| Microsoft Teams | Adaptive Card 1.4 via incoming webhook or Workflows |
| SMTP with STARTTLS, up to 50 recipients | |
| Webhook | HTTPS POST with a JSON body |
Webhook payload
{ "source": "kubeon", "title": "Budget forecast over: Payments platform", "summary": "Forecast $52,202.50 against a $48,000.00 monthly budget (108.8%).", "severity": "warning", "facts": { "spent": "$15,142.40", "forecast": "$52,202.50", "days_with_data": "9/31" }, "link": "https://acme.kubeon.io/govern/budgets?budget=payments-platform", "sent_at": "2026-10-10T09:50:12Z"}Webhook targets must be HTTPS on public addresses. Loopback, link-local, metadata and private addresses are refused, DNS is re-checked at send time, and redirects are not followed.
Need help with this guide?Contact support