Slo Burn Rate Calculator

.slo-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e1e4e8; border-radius: 8px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .slo-calc-header { text-align: center; margin-bottom: 30px; } .slo-calc-header h2 { color: #1a73e8; margin-bottom: 10px; } .slo-input-group { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; } .slo-field { display: flex; flex-direction: column; } .slo-field label { font-weight: 600; margin-bottom: 8px; color: #3c4043; } .slo-field input { padding: 10px; border: 1px solid #dadce0; border-radius: 4px; font-size: 16px; } .slo-calc-btn { width: 100%; padding: 12px; background-color: #1a73e8; color: white; border: none; border-radius: 4px; font-size: 16px; font-weight: 600; cursor: pointer; transition: background-color 0.2s; } .slo-calc-btn:hover { background-color: #1557b0; } .slo-result-container { margin-top: 30px; padding: 20px; background-color: #f8f9fa; border-radius: 6px; display: none; } .slo-result-item { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #dee2e6; } .slo-result-item:last-child { border-bottom: none; } .slo-result-label { font-weight: 500; color: #5f6368; } .slo-result-value { font-weight: 700; color: #202124; } .burn-high { color: #d93025; } .burn-normal { color: #1e8e3e; } .burn-warning { color: #f9ab00; } .slo-content { margin-top: 40px; line-height: 1.6; color: #3c4043; } .slo-content h3 { color: #1a73e8; margin-top: 25px; } .slo-content ul { padding-left: 20px; }

SLO Burn Rate Calculator

Calculate your Error Budget consumption and determine how fast your service reliability is declining.

Current Burn Rate:
Error Budget Consumed:
Time Until Budget Exhaustion:
Status:

Understanding SLO Burn Rate

In Site Reliability Engineering (SRE), the Burn Rate is a metric that describes how fast a service consumes its error budget relative to the Service Level Objective (SLO) time window. A burn rate of 1.0 means you are consuming your budget at a rate that will leave you with exactly 0% budget at the end of the window.

The Math Behind the Burn

To calculate the burn rate, we use the following logic:

  • Error Budget: 100% – SLO Target %. (e.g., a 99.9% SLO has a 0.1% error budget).
  • Burn Rate: Actual Error Rate / Allowed Error Rate.
  • Budget Consumption: (Burn Rate * Observation Period) / (SLO Window in Hours).

Interpretation of Results

  • Burn Rate 1.0: You are perfectly on track to meet your SLO.
  • Burn Rate > 1.0: You are consuming budget too fast. If this continues, you will breach your SLO before the time window ends.
  • Burn Rate < 1.0: You are operating more reliably than required, leaving room for more aggressive changes or deployments.

Example Scenario

If you have a 99.9% SLO over a 30-day window, your allowed error rate is 0.1%. If you experience a sudden spike and your error rate becomes 1% for one hour:

  • Your Burn Rate is 1% / 0.1% = 10.0.
  • A burn rate of 10 means you are consuming 10 hours of "budget" every hour.
  • In this 1-hour event, you consumed roughly 1.4% of your total monthly error budget.
function calculateSLOBurn() { var sloTarget = parseFloat(document.getElementById('sloPercentage').value); var windowDays = parseFloat(document.getElementById('timeWindow').value); var obsHours = parseFloat(document.getElementById('observationPeriod').value); var actualError = parseFloat(document.getElementById('actualErrorRate').value); if (isNaN(sloTarget) || isNaN(windowDays) || isNaN(obsHours) || isNaN(actualError)) { alert("Please enter valid numerical values for all fields."); return; } if (sloTarget >= 100 || sloTarget 0) var exhaustionText = "Never"; if (burnRate > 0) { var hoursRemaining = totalWindowHours / burnRate; if (hoursRemaining > 24) { exhaustionText = (hoursRemaining / 24).toFixed(2) + " Days"; } else { exhaustionText = hoursRemaining.toFixed(2) + " Hours"; } } // 5. Determine Status var status = "Healthy"; var statusClass = "burn-normal"; if (burnRate > 14.4) { status = "CRITICAL (Fast Burn)"; statusClass = "burn-high"; } else if (burnRate > 1) { status = "Warning (Over Budget)"; statusClass = "burn-warning"; } // Display results document.getElementById('resBurnRate').innerHTML = burnRate.toFixed(2); document.getElementById('resBudgetConsumed').innerHTML = budgetConsumedPercent.toFixed(4) + "%"; document.getElementById('resExhaustion').innerHTML = exhaustionText; document.getElementById('resStatus').innerHTML = status; document.getElementById('resStatus').className = "slo-result-value " + statusClass; document.getElementById('sloResult').style.display = 'block'; }

Leave a Comment