Problems › Python › monitoring
What share of requests failed
A status page shows the error rate as a whole percentage, because nobody reads four decimal places at a glance.
- Rounded to the nearest whole percent, halves going up.
- No requests at all means no rate: return 0.
- More errors than requests is impossible data — treat it as 100.
error_rate(errors: int, total: int) → int
Where you start
def error_rate(errors: int, total: int) -> int:
Worked examples
| Call | Result |
|---|---|
error_rate(5, 100) | 5 |
error_rate(1, 3) | 33 |
error_rate(2, 3) | 67 |
error_rate(0, 100) | 0 |
Hint
Add half the divisor before dividing, then cap.
Reference solution in Python
def error_rate(errors: int, total: int) -> int:
if total <= 0 or errors <= 0:
return 0
return min(100, (errors * 100 + total // 2) // total)