← Back to blog
·2 min read·Monitoring

Prometheus SLO-Based Alerting

How to implement Service Level Objective alerting with Prometheus and reduce alert fatigue.

Alert fatigue kills incident response effectiveness. SLO-based alerting focuses on user-impacting symptoms rather than infrastructure causes.

Defining SLOs

Start with user-facing metrics:

ServiceSLISLO Target
API GatewayRequest success rate99.9%
Payment ServiceRequest latency p99 < 500ms99.5%
SearchAvailability99.95%

Recording Rules

Create SLI recording rules in Prometheus:

groups: - name: slo-recording rules: - record: slo:request_success:ratio_rate5m expr: | sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

Multi-Window Burn Rate Alerts

Google's SRE book recommends multi-window, multi-burn-rate alerts:

groups: - name: slo-alerts rules: - alert: HighErrorBudgetBurn expr: | slo:request_success:ratio_rate5m < 0.999 and slo:request_success:ratio_rate1h < 0.999 for: 2m labels: severity: critical annotations: summary: "High error budget burn rate detected"

Burn Rate Windows

Fast burn (5m/1h) for critical pages. Slow burn (6h/3d) for warnings.

Error Budget Policy

Define what happens when error budget is exhausted:

  1. > 50% remaining — Normal development velocity
  2. 25-50% remaining — Increase review rigor for risky changes
  3. < 25% remaining — Freeze non-critical deployments
  4. Exhausted — All hands on reliability improvements

Conclusion

SLO-based alerting transformed our on-call experience from hundreds of noisy alerts to a handful of actionable pages. Start with one service and expand the pattern gradually.

Related Articles