Skip to content

service-level agreement (SLA)

A service-level agreement, or SLA, is a contract between a service provider and its customers that promises a certain level of service and spells out what happens if the provider falls short. Those consequences are what set an SLA apart from an internal service-level objective. Missing an SLA usually costs the provider money.

Google’s SRE book describes an SLA as “an explicit or implicit contract with your users that includes consequences” of meeting or missing the SLOs it contains. The promise rests on one or more SLOs, each measured by a service-level indicator.

The consequence is usually a service credit, scaled to how badly the target was missed:

Language: Text
Monthly uptime     Service credit
>= 99.95%          none
99.0% to 99.95%    10% of the monthly fee
< 99.0%            25% of the monthly fee

How It Shows Up in Practice

A Python developer rarely writes an SLA but ships against one constantly. Every major cloud provider publishes uptime SLAs for its services, and a team building on top of them inherits those numbers as a ceiling on what it can promise its own customers.

Day to day, the SLA sets the stakes the dashboards watch. The observability data that tracks an SLO is the same data that proves whether the SLA held over a billing period.

The Internal Safety Buffer

A careful team never sets its internal SLO equal to its SLA. The SLA is the line that triggers refunds, so the SLO is pitched tighter, leaving room to spot trouble and react before a paying customer is affected:

Top-down flowchart. Teal "Service healthy" drops to "Internal SLO target", then a yellow "Safety buffer" box branching to a coral "SLA line, refunds" and a dotted edge to "Team pages itself early".
The gap between the tighter internal SLO and the SLA is the buffer that pages the team before refunds are ever in question.

That gap is the team’s error budget working as an early-warning system. When the budget is nearly spent, the service is brushing up against its own internal target while still safely short of the contractual SLA. By the time an SLA breach is genuinely in question, the team has usually been paging itself for a while.

Tutorial

Logging in Python

If you use Python's print() function to get information about the flow of your programs, logging is the natural next step. Create your first logs and curate them to grow with your projects.

intermediate best-practices stdlib tools

For additional information on related topics, take a look at the following resources:


By Martin Breuss • Updated June 22, 2026