Calculate mean time between failures from total uptime and failure count.
MTBF = total_uptime ÷ number_of_failures — the average time the system runs between failure events during the observed period. Annualizing it (8760 hours ÷ MTBF) projects expected failures per year at the same failure rate, and applying the exponential reliability model (assuming failures follow a Poisson process) gives the probability of experiencing at least one failure within a year, which is a more intuitive number for risk conversations than raw MTBF hours.
MTBF_hours = total_operational_hours / number_of_failures
MTBF measures how often failures happen (time between them), while MTTR measures how long it takes to recover once a failure occurs — a system can have excellent MTTR (fast recovery) but poor MTBF (frequent failures), or vice versa, and both matter for overall availability.
Not necessarily on its own — availability depends on both MTBF and MTTR: availability ≈ MTBF / (MTBF + MTTR), so a system with high MTBF but very slow recovery can still have worse availability than one with more frequent but much faster-to-fix failures.
It's the standard assumption in reliability engineering when failures are memoryless and roughly independent (a Poisson process) — it's an approximation, and real systems can deviate (e.g. wear-out failures cluster over time), but it's a reasonable default absent more specific failure-distribution data.
There's no universal target — it depends entirely on your availability SLO. Back-calculate the MTBF needed to hit your SLO given your typical MTTR, rather than chasing an arbitrary MTBF number in isolation.