TLDR on SLI, SLO and SLA.

Photo by Salman Sidheek / Unsplash

These acronyms are tossed around from time to time. I figured I will drop a TLDR; for future myself and you folks.

Service Level Indicator (SLI) measure of chosen characteristic of the level of service. Most services provide request latency - how long it takes for a request to return response as a key SLI. Other common SLIs are error rate and system throughput (req/s).  SLIs measurmeants are aggregated over a window and expressed as a rate, average or percentile and based on that alerts are setup wheter team is meeting SLIs or not.  

Service Level Objective (SLO) A target metric that is the objective to achieve for a given service level. For example we would like to return our API's calls quickly. Adopting SLO that our average request latency should be less than 200ms. But this is not so easy, because request's latency depends on a client and server locations. But in general keeping SLOs public manages client expectations in check on how service should perform on a given basis.

Service Level Agreement (SLA) A contractual agreement created to describe the availability, objective, and other legal language with regard to providing a product/service. Also SLAs don't mean availability, it is SLO. SLA also describes expectations and consequences of meeting/missing SLO.

In short SLIs show where we are at given point. SLOs mean where we want to be. SLAs describes what happens if we don't get there in time.

Karolis Ščerbiakas

Karolis Ščerbiakas