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.

Note

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 budgetAbsolute threshold
Spend suddenly spikes compared to normalPercentage change
Daily run rate is higher than expectedDaily budget

Step 2: Scope the alert

Choose how broadly the alert applies:

ScopeDescription
AccountWatches total spend across all clusters
ClusterWatches spend for a specific cluster
NamespaceWatches spend for a namespace across all (or one) cluster
LabelWatches 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
Tip

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:

Email

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

  1. Create an incoming webhook in your Slack workspace: Slack app directory → Incoming Webhooks → Add to Slack.
  2. Copy the webhook URL (format: https://hooks.slack.com/services/T.../B.../...).
  3. 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).

  1. Enter the webhook URL.
  2. Optionally add HTTP headers (e.g. Authorization: Bearer <token>).
  3. 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.


Daily budget at 110%

Catches day-to-day overspend before it compounds.

SettingValue
TypeDaily budget
ScopeAccount (or per-cluster)
Threshold110% of expected daily rate
ChannelSlack #alerts-infra

Weekly spike at 30%

Catches gradual cost creep and unexpected scaling events.

SettingValue
TypePercentage change
ScopeAccount
WindowWeek over week
Threshold30% increase
ChannelSlack #alerts-infra + email to engineering lead

Monthly budget ceiling

Hard stop for finance accountability.

SettingValue
TypeAbsolute threshold
ScopeAccount
ThresholdYour monthly infrastructure budget
ChannelEmail to engineering lead + finance

Per-team namespace overspend

Useful for chargeback accountability.

SettingValue
TypeAbsolute threshold
ScopeLabel (team=<team-name>)
ThresholdTeam’s monthly allocation
ChannelSlack #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.