TLDR on SLI, SLO and SLA.
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 a chosen characteristic of the level of service. Most services provide request latency - how long it takes for a request to return the response as a key SLI. Other common SLIs are error rate and system throughput (req/s). SLI measurmeants are aggregated over a window and expressed as a rate, average, or percentile, and based on that alerts are set up wheter the 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 calls quickly. Adopting SLO that our average request latency should be less than 200ms. But this is not so easy, because the request's latency depends on the 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 about 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 a given point. SLOs means where we want to be. SLAs describe what happens if we don't get there in time.