SLI is the measured metric, SLO is the target, SLA is the contractual promise. Error budget is the allowed failure (1 - SLO); if it’s burned, you slow releases and focus on reliability work.
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "explain-sli,-slo,-sla,-and-error-budgets,-and-ho"
function explain() {
// Start from the core idea:
// SLI is the measured metric, SLO is the target, SLA is the contractual promise. Error budge
}