Back to category
Core Observability

SLA vs. SLO vs. SLI: What’s the Difference?

Learn the difference between SLA, SLO, and SLI, how they work together during incidents, and how teams use them to manage service reliability.

SLA vs. SLO vs. SLI: What’s the Difference?

Your monitoring dashboard shows that API availability has dropped to 99.94% during an ongoing production incident. Engineering has an internal reliability target of 99.95%, while the customer contract guarantees 99.9% availability.

Those three numbers represent different parts of service reliability. The measured performance is the Service Level Indicator (SLI), the internal target is the Service Level Objective (SLO), and the level formally promised to customers is the Service Level Agreement (SLA).

This distinction matters most during an incident. The SLI shows how the service is actually performing, the SLO tells engineering whether reliability has fallen outside its acceptable range, and the SLA tells the business whether a customer or vendor commitment is at risk.

In simple terms:

  • SLI measures what actually happened and the actual performance of a service.
  • SLO defines the reliability target you want that service to meet.
  • SLA defines a formal agreement about the level of service provided to customers.

The relationship is:

SLI = measurement → SLO = target → SLA = commitment

Key highlights

  • An SLI is the measurement, an SLO is the internal target, and an SLA is the customer contract.
  • Keep the SLO stricter than the SLA so the team gets an early warning before a contractual breach.
  • Error budgets and burn rate alerts turn an SLO into a working tool for balancing release speed with reliability.

SLA vs. SLO vs. SLI at a glance

An SLI measures how a service actually performs, an SLO sets the internal target for that measurement, and an SLA is the formal commitment made to customers, usually with remedies if it is missed.

SLISLOSLA
Stands forService Level IndicatorService Level ObjectiveService Level Agreement
What it meansActual service performanceInternal reliability targetCustomer-facing commitment
Main questionHow did the service perform?Is reliability good enough?Are we meeting what we promised?
Example99.94% availabilityTarget of 99.95%Guarantee of 99.9%
Primary audienceEngineering and SREEngineering, SRE, productCustomers, legal, business teams
If missedShows measured performanceMay trigger reliability workMay trigger contractual remedies

The easiest way to remember the difference is that the SLI gives you the number, the SLO tells you whether that number is acceptable, and the SLA determines whether a formal commitment has been missed.

What is an SLI?

A service level indicator (SLI) is a measurement of one aspect of service behavior that users care about, such as whether requests succeed or how quickly they complete.

“Use an SLI when you need a factual read on how a service is performing, with no judgment about whether that's good or bad.“

Use it when:

  • Tracking request success rate or availability for an API
  • Measuring the share of requests that complete within a latency threshold
  • Checking whether a data pipeline delivers data on time
  • Feeding the number that an SLO or SLA is evaluated against

For example, suppose your payment API handled 1,000,000 valid requests during the current measurement period, of which 999,400 completed successfully.

The availability SLI is:

999,400 ÷ 1,000,000 = 99.94%

That percentage describes what actually happened. It does not tell you whether 99.94% is good enough or whether a contractual commitment has been violated. Those questions are answered by the SLO and SLA.

What makes a good SLI?

A useful SLI should represent something users actually experience.

Users care whether checkout works, whether an API responds, whether a page loads quickly, or whether submitted data becomes available on time. They do not directly care whether the server handling the request is at 70% CPU utilization.

CPU, memory, disk usage, queue depth, and database connections remain valuable monitoring metrics because they help explain reliability problems. However, they usually describe the condition of the system rather than the outcome experienced by the user.

Common SLIs include:

SLIWhat it measuresExample
AvailabilityWhether users can successfully use the servicePercentage of successful requests
LatencyWhether requests complete quickly enoughPercentage completed within 500 ms
FreshnessWhether data becomes available on timePercentage available within 5 minutes
CorrectnessWhether the expected result is producedPercentage of transactions processed correctly
DurabilityWhether stored data remains accessiblePercentage of stored data still retrievable

For most APIs and online applications, availability and latency are natural starting points.

Where you measure the SLI matters

The same service can look different depending on where reliability is measured.

Backend application metrics may show that an API returned successfully, but they may not capture a DNS failure or network issue that prevented users from reaching it. A backend request can also return a successful response while the frontend fails to render correctly.

For this reason, SLIs should be measured as close as practical to the experience they are supposed to represent.

Synthetic Monitoring can continuously test critical APIs and user journeys from outside the application, while Real User Monitoring provides visibility into what actual users experience across browsers, devices, and networks.

The right measurement source depends on what you are trying to protect.

What is an SLO?

A Service Level Objective (SLO) defines the reliability target that an SLI should meet over a specific period. It gives engineering and product teams a shared definition of what “reliable enough” means.

“Use an SLO when you need an internal line that tells the team when reliability work should take priority over new releases. “

Use it when:

  • Deciding whether a service is reliable enough to keep shipping features
  • Setting alerts that fire before a customer commitment is at risk
  • Agreeing on reliability expectations for internal platforms or APIs
  • Planning deployments, migrations, or other risky changes

For example:

99.95% of valid payment requests should complete successfully over a rolling 28-day period.

A useful SLO should clearly define the indicator being measured, the target, the measurement window, and the traffic or users included.

Without those details, a statement such as “the API should have 99.9% availability” leaves too much open to interpretation.

Why SLOs matter during an incident

Return to the monitoring dashboard. The current SLI has fallen to 99.94%, while the engineering SLO is 99.95%.

The service has therefore missed its internal reliability objective.

That does not automatically mean the customer agreement has been breached. It tells engineering that reliability has fallen below the level the team considers acceptable and needs attention before the external commitment is affected.

This is one of the main reasons SLOs are useful. They create an internal reliability boundary that can trigger action before a customer-facing SLA is at risk.

Why the measurement window matters

A reliability percentage only becomes meaningful when it is tied to a period.

For example, 99.9% availability over one hour and 99.9% availability over one month allow very different amounts of failure.

Engineering teams often use rolling periods such as 28 days because reliability does not reset when a calendar month changes. SLAs commonly use monthly or quarterly periods because those align more naturally with contracts, billing, and reporting.

Neither is automatically better. The important part is defining the window clearly and using it consistently.

What is an error budget?

An error budget is the amount of unreliability an SLO allows before the objective is missed.

The relationship is simple:

Error budget = 100% - SLO

A 99.9% SLO leaves a 0.1% error budget. A 99.95% SLO leaves a 0.05% error budget.

SLOError budgetApprox. allowed downtime over 30 days
99%1%7 hours 12 minutes
99.9%0.1%43 minutes
99.95%0.05%22 minutes
99.99%0.01%4 minutes 19 seconds

The difference between 99.9% and 99.99% looks small, but the available error budget is ten times smaller.

Error budgets make SLOs more useful operationally because they give teams a way to reason about how much failure the service can tolerate.

If very little budget has been consumed, the team has more room for deployments, migrations, and other changes. If an incident consumes the budget quickly, reliability work may need to take priority over risky releases.

An SLO therefore becomes more than a dashboard target. It becomes a way to balance product velocity with operational stability.

What is an SLA?

A Service Level Agreement (SLA) is a formal commitment that defines the level of service a provider promises to a customer. It may also specify how the service is measured and what happens if the commitment is missed.

“An SLA is a business and legal tool. Use one only when an external customer needs a formal guarantee. “

Use it when:

  • A customer contract needs a guaranteed availability level
  • You offer service credits or refunds for downtime
  • Enterprise buyers require documented reliability commitments
  • Exclusions such as scheduled maintenance need to be defined formally

For example, a customer or vendor contract may guarantee 99.9% monthly availability.

If measured availability falls below the agreed threshold, the contract may provide service credits, refunds, or another remedy.

That consequence is one of the clearest differences between an SLO and an SLA.

Missing an SLO generally results in an internal engineering response. Missing an SLA can have customer-facing, financial, or contractual consequences.

Why the SLO should be stricter than the SLA

If the SLO and SLA are both 99.9%, the team's first internal warning arrives at the same moment the contract is breached. A stricter SLO, such as 99.95% against a 99.9% SLA, creates a buffer. The gap should be large enough to cover the time it takes to detect, investigate, and fix a typical incident.

Watch for mismatched units

Many SLAs measure availability in minutes, while most SLIs count requests. A 30-minute outage at 3 a.m., when traffic is low, barely moves a request-based SLI, yet it uses about 70% of the downtime a 99.9% monthly SLA allows. Before you treat an SLO as an early warning for an SLA, confirm that both use the same unit, window, and exclusions.

How SLIs, SLOs, and SLAs work together during an incident

Suppose a new release causes payment failures. Over the current window, 600 of 1,000,000 valid requests fail.

The relationship looks like this:

Reliability layerExampleWhat it tells you
SLICurrent availability = 99.94%What actually happened
SLOInternal target = 99.95%Whether reliability is acceptable
SLAContract guarantee = 99.9%Whether the customer commitment is at risk

The team missed its SLO but not its SLA. This is the model working as intended: the internal target raised the alarm early, and customers never saw a contractual breach.

How observability helps during an SLO incident

The SLO shows that reliability is at risk, but it doesn't explain why. A typical investigation continues with observability data:

  1. A burn rate alert fires on the payment availability SLO.
  2. Error rates by version show the failures started with the latest deploy.
  3. Distributed traces show failing spans on one database operation.
  4. Correlated logs reveal that the database connection pool is exhausted.

The SLA sits above that workflow as the external commitment the team is trying to protect.

Why not set every SLO to 100%?

A 100% reliability objective sounds ideal, but it is rarely practical.

Modern applications depend on databases, networks, cloud infrastructure, external APIs, operating systems, software releases, and other systems that can fail temporarily.

A 100% SLO also leaves no error budget. Every failed request becomes a reliability violation, and every system change introduces the possibility of missing the objective.

That can lead teams to either avoid reasonable changes or stop treating the target seriously.

A better SLO reflects the level of reliability users actually need and the service can realistically deliver.

For one system, 99.9% may be appropriate. A critical transaction or infrastructure service may justify a higher objective.

The correct target depends on the service, its users, its architecture, and the impact of failure.

Choosing useful SLIs and SLOs

Start with the user journey rather than the infrastructure dashboard.

Ask what needs to work for the customer to consider the service reliable.

For an ecommerce application, important journeys might include signing in, searching for products, adding an item to a cart, and completing checkout.

SystemUseful SLIsExample SLO
APIAvailability, latency99.95% of valid requests succeed
CheckoutTransaction success, latency99.9% of valid checkouts succeed
WebsitePage availability, load performance99% of eligible pages load within 3 seconds
Data pipelineFreshness, processing success99% of events become available within 10 minutes
StorageAvailability, durability99.9% of valid reads succeed

The goal is not to create an SLO for every metric. A small set of objectives tied to important user outcomes is generally more useful than dozens of targets that do not influence operational decisions.

Common mistakes with SLIs, SLOs, and SLAs

Using Infrastructure Metrics as SLIs

CPU, memory, disk usage, pod count, and database connections help diagnose problems, but they do not directly describe what users experienced.

A service can have healthy CPU usage while customer requests fail because of a broken dependency. Use infrastructure metrics to explain reliability, but choose SLIs that represent service outcomes.

Setting the SLO Equal to the SLA

If both thresholds are the same, engineering may receive an internal warning only when the contractual commitment is already at risk.

A stricter SLO gives the team room to react before the SLA threshold is crossed.

Using Average Latency

Average response time can hide poor performance at the slower end of traffic.

If most requests complete quickly but a meaningful percentage take several seconds, the average may still appear healthy. Latency SLIs are often more useful when they measure the share of requests that complete within a defined threshold.

Leaving the Scope Undefined

“99.9% availability” is incomplete on its own.

Define what traffic counts, what a successful event means, where the measurement comes from, and what time window applies.

Tracking Too Many SLOs

Not every operational metric needs to become an SLO.

Focus first on important user journeys and service behaviors where missing the objective would change how the team responds.

Managing Reliability with Middleware

Middleware brings the telemetry used for reliability monitoring and incident investigation into a connected workflow.

Middleware Metrics can track service availability, latency, request rates, errors, and infrastructure health, while alerts can notify teams when important service conditions begin moving outside expected ranges.

For customer-facing systems, Synthetic Monitoring can continuously test important APIs and journeys, while Real User Monitoring shows what actual users experience.

When an SLI begins to deteriorate, Middleware APM, distributed traces, logs, and infrastructure telemetry provide the context needed to investigate the incident.

The dashboard tells you how the service is performing against its reliability objective and customer commitment. The observability data helps explain why the service is moving in the wrong direction.

FAQs

What is the difference between SLI, SLO, and SLA?

An SLI measures actual service performance, an SLO defines the internal reliability target, and an SLA defines the service level formally promised to customers.

What is an SLI in simple terms?

An SLI is the measured value that shows how reliably a service actually performed. Examples include successful-request percentage, availability, latency, and data freshness.

What is an SLO in simple terms?

An SLO is the internal reliability target an SLI should meet over a defined period. It tells engineering what level of service is considered acceptable.

What is an SLA in simple terms?

An SLA is a formal agreement defining the service level promised to a customer. It may also specify remedies if the provider fails to meet the commitment.

Can you have an SLO without an SLA?

Yes. Internal platforms, APIs, data pipelines, and other services commonly use SLOs even when no external contract exists. The objective still helps teams make reliability and release decisions.

Should an SLO be stricter than an SLA?

It is common for an internal SLO to be stricter than the customer-facing SLA. This gives engineering time to detect and resolve deteriorating reliability before the contractual commitment is affected.

What is an error budget?

An error budget is the amount of failure allowed by an SLO. For example, a 99.9% SLO leaves a 0.1% error budget.

What happens when an SLO is missed?

Missing an SLO usually triggers an internal reliability response. That may involve investigating the incident, reviewing deployments, prioritizing reliability work, or reducing risky changes.

What happens when an SLA is missed?

The consequence depends on the agreement. The SLA may specify service credits, refunds, or other contractual remedies if the promised service level is not met.

The Bottom Line

SLIs, SLOs, and SLAs answer three related but different reliability questions.

SLI: What level of service did we actually deliver?

SLO: Is that level of service meeting our internal reliability target?

SLA: Are we still meeting the commitment made to the customer?

During an incident, those distinctions become practical. The monitoring dashboard provides the SLI, the SLO tells engineering whether reliability has moved outside the acceptable range, and the SLA shows whether the customer or vendor commitment is at risk.

Together, they give teams a clearer way to measure reliability, respond to incidents, and act before an internal service problem becomes a contractual one.