Configure Cost Alerts
Cost alerts notify you when spending crosses a threshold — before the bill arrives. CostPilot supports three alert types across multiple scopes, with delivery via email, Slack, or webhook.
Alerts are a paid plan feature. Free plan users can view the Alerts settings page but cannot save alert rules. Upgrade in Settings → Billing to enable alerts.
Alert types
Absolute threshold
Fires when cumulative spend in the current billing period exceeds a fixed amount.
- Use case: “Alert me if this cluster spends more than 500 this month.”
- Triggers once per billing period when the threshold is crossed.
Percentage change
Fires when spend increases by more than a given percentage relative to the previous period.
- Use case: “Alert me if this namespace costs 30% more this week than last week.”
- Compares the current rolling window (day, week, or month) to the equivalent prior window.
Daily budget
Fires if projected daily spend exceeds a target daily rate.
- Use case: “Alert me if we are on track to exceed 50/day on this cluster.”
- Evaluated once per day, based on the day’s actual spend up to that point.
Step 1: Choose an alert type
Navigate to Settings → Alerts and click New alert.
Select the alert type that matches your intent:
| I want to know when… | Alert type |
|---|---|
| Monthly spend exceeds a fixed budget | Absolute threshold |
| Spend suddenly spikes compared to normal | Percentage change |
| Daily run rate is higher than expected | Daily budget |
Step 2: Scope the alert
Choose how broadly the alert applies:
| Scope | Description |
|---|---|
| Account | Watches total spend across all clusters |
| Cluster | Watches spend for a specific cluster |
| Namespace | Watches spend for a namespace across all (or one) cluster |
| Label | Watches spend attributed to a specific label value (e.g. team=platform) |
Narrower scopes give more actionable alerts. Account-level alerts catch large unexpected bills; label-level alerts tell you exactly which team overspent.
Step 3: Set the threshold
For absolute threshold and daily budget, enter the spend amount in your account currency.
For percentage change, enter the percentage increase that should trigger the alert (e.g. 30 for 30%). Choose the comparison window:
- Day over day: compares today’s spend to yesterday
- Week over week: compares this week’s spend to last week
- Month over month: compares this month to last month
Week-over-week comparisons are usually more reliable than day-over-day for catching genuine anomalies. Daily spend often varies naturally (e.g. batch jobs that run on specific days), making day-over-day alerts noisy.
Step 4: Add a notification channel
CostPilot supports three delivery channels:
Enter one or more email addresses. Alert emails include:
- The alert name and scope
- Current spend vs. threshold
- A direct link to the relevant Cost Explorer view
Slack
- Create an incoming webhook in your Slack workspace: Slack app directory → Incoming Webhooks → Add to Slack.
- Copy the webhook URL (format:
https://hooks.slack.com/services/T.../B.../...). - Paste it into the Slack webhook URL field in CostPilot.
Alerts appear as a formatted message in the target Slack channel with spend details and a dashboard link.
Webhook
Send alert payloads to any HTTP endpoint (PagerDuty, Opsgenie, custom tooling).
- Enter the webhook URL.
- Optionally add HTTP headers (e.g.
Authorization: Bearer <token>). - CostPilot sends a POST request with a JSON body:
{
"alert_name": "Production cluster daily budget",
"alert_type": "daily_budget",
"scope": "cluster",
"scope_value": "prod-eu-west-1",
"threshold": 50.00,
"current_value": 58.40,
"currency": "EUR",
"triggered_at": "2026-02-27T14:00:00Z",
"dashboard_url": "https://app.cost-pilot.com/cost-explorer?..."
}
The currency field reflects your account’s configured display currency (set in Settings → General). Threshold and current values are in the same currency.
Step 5: Test delivery
Before saving, click Send test notification. CostPilot fires a test payload immediately to the configured channel so you can verify delivery without waiting for a real threshold to trigger.
Check your email inbox, Slack channel, or webhook endpoint for the test message. If it does not arrive within 30 seconds, verify the channel configuration and try again.
Step 6: Save and monitor
Click Save alert. The alert is now active and will fire the next time the threshold condition is met.
View all active alerts and their recent trigger history in Settings → Alerts. Each alert shows:
- Last triggered date
- Number of times fired in the last 30 days
- Current status (active / muted)
You can mute an alert temporarily (e.g. during a planned capacity event) without deleting it.
Recommended starter alerts
Daily budget at 110%
Catches day-to-day overspend before it compounds.
| Setting | Value |
|---|---|
| Type | Daily budget |
| Scope | Account (or per-cluster) |
| Threshold | 110% of expected daily rate |
| Channel | Slack #alerts-infra |
Weekly spike at 30%
Catches gradual cost creep and unexpected scaling events.
| Setting | Value |
|---|---|
| Type | Percentage change |
| Scope | Account |
| Window | Week over week |
| Threshold | 30% increase |
| Channel | Slack #alerts-infra + email to engineering lead |
Monthly budget ceiling
Hard stop for finance accountability.
| Setting | Value |
|---|---|
| Type | Absolute threshold |
| Scope | Account |
| Threshold | Your monthly infrastructure budget |
| Channel | Email to engineering lead + finance |
Per-team namespace overspend
Useful for chargeback accountability.
| Setting | Value |
|---|---|
| Type | Absolute threshold |
| Scope | Label (team=<team-name>) |
| Threshold | Team’s monthly allocation |
| Channel | Slack #team-channel |
Alert fatigue
Alerts are only valuable if they are actionable. If you receive more than 2–3 alerts per week that require no action, recalibrate your thresholds. Common causes of noisy alerts:
- Threshold too tight: Daily budget set at 100% — normal variance will trigger it constantly. Use 110–120%.
- Scope too broad: Account-level percentage change firing because one namespace grew. Narrow the scope.
- Missing seasonality context: Week-over-week alerts fire around peak traffic periods. Consider muting them before planned events.