DevOps Practices·7 min read·

SLO-Driven Alerting: Eliminating Fatigue with Multi-Window Error Budget Burn Rates

Replace noisy static CPU/RAM threshold alerts with mathematical multi-window burn rate alarms that only page engineers when user-facing SLAs are threatened.

NB

Netbay Developer Relations

Netbay Engineering

On this page

On-call alert fatigue is one of the primary drivers of burnout in engineering teams. The root cause is static threshold alerting: paging an engineer at 3 a.m. because CPU utilization hit 88% or memory reached 90%, even though user response times remained under 50 milliseconds and zero errors occurred.

In Google Site Reliability Engineering (SRE) practice, alerting is anchored to Service Level Objectives (SLOs) and Error Budgets. Instead of guessing arbitrary hardware limits, you alert only when an incident is consuming the error budget so rapidly that your quarterly service commitment will be violated.

Multi-Window, Multi-Burn-Rate Mathematics

An error budget represents the allowable rate of failure. For a 99.9% availability target over 30 days:

  • Total Allowable Downtime / Error Rate: 0.1% of all requests.
  • Burn Rate of 1.0: Consumes exactly 100% of the error budget over the 30-day window.
  • Burn Rate of 14.4: Consumes 2% of the total monthly error budget in just 1 hour. This demands an immediate 24/7 page.
  • Burn Rate of 6.0: Consumes 5% of the monthly error budget over 6 hours. This requires next-business-day investigation.
Multi-Window Error Budget Burn Rate Alerting CRITICAL: Fast Burn Burn Rate: 14.4x (2% in 1 hr) Short Window: 5m | Long: 1h Action: PagerDuty Wake-Up WARNING: Slow Burn Burn Rate: 6.0x (5% in 6 hrs) Short Window: 30m | Long: 6h Action: Slack Ticket / Next Day HEALTHY: Normal State Burn Rate < 1.0x Availability > 99.95% Zero Unnecessary Pages The Multi-Window Safety Condition Both the short window (e.g. 5m) AND long window (e.g. 1h) must be actively burning This completely prevents false alarms caused by brief 30-second network blips

Production Prometheus Alerting Rules

Below is the PromQL configuration enforcing multi-window burn rate alerts for an HTTP API:

yaml
# /etc/prometheus/rules/slo_alerts.yml
groups:
  - name: api_slo_burn_rates
    rules:
      - alert: FastBurnRateHighErrorBudgetLoss
        expr: >
          (
            sum(rate(http_requests_total{status=~"5.."}[1h]))
            /
            sum(rate(http_requests_total[1h]))
          ) > (14.4 * 0.001)
          and
          (
            sum(rate(http_requests_total{status=~"5.."}[5m]))
            /
            sum(rate(http_requests_total[5m]))
          ) > (14.4 * 0.001)
        for: 2m
        labels:
          severity: critical
          tier: api
        annotations:
          summary: "API 1-hour fast error budget burn rate exceeded (14.4x)"
          description: "High rate of 5xx errors consuming over 2% of monthly budget in 1 hour."

      - alert: SlowBurnRateModerateLoss
        expr: >
          (
            sum(rate(http_requests_total{status=~"5.."}[6h]))
            /
            sum(rate(http_requests_total[6h]))
          ) > (6.0 * 0.001)
          and
          (
            sum(rate(http_requests_total{status=~"5.."}[30m]))
            /
            sum(rate(http_requests_total[30m]))
          ) > (6.0 * 0.001)
        for: 15m
        labels:
          severity: warning
          tier: api
        annotations:
          summary: "API 6-hour slow error budget burn rate exceeded (6.0x)"
          description: "Persistent error degradation threatening monthly SLA."

Notice the dual conditions: 'sum(rate(...[1h]))' combined with 'sum(rate(...[5m]))'. If an issue resolves after 4 minutes, the 5-minute rate drops and the alert automatically cancels before paging on-call staff.

Expand
SLO Alerting and Telemetry Metrics
Prometheus monitoring and SLO telemetry

Video Deep Dive on Prometheus Alerting

Review Prometheus metric architecture and alerting best practices:

Prometheus Monitoring and Alerting Best Practices
YouTube

Switching from arbitrary CPU thresholds to mathematical SLO burn rates ensures that engineers are only woken up when real customers are experiencing real outages.

Run dependable Prometheus and Grafana monitoring stacks on dedicated Netbay Cloud VPS servers at netbayhosts.in.

Keep reading

Follow along on a real VPS

Deploy Linux in under 60 seconds

These guides are written against Ubuntu, Debian, and RHEL-family images — the same ones on NetBay.

Deploy an instance