You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
Service Level Objective (SLO) and Service Level Indicators (SLI)
Rationale: We’d love it if all our systems responded instantly and worked 100% of the time, but we also know that’s unrealistic. By choosing specific objectives, we can aim to keep our users happy, and still be able to prioritize other work as long as we’re meeting those objectives. If the performance starts to dip down toward the threshold, we know it’s time to refocus on short-term reliability work and put other things on hold. And by breaking up our complex production landscape into individual services, each with its own Service Level Objective, we know where to focus that work
Service Level Indicator: a measurement of a behavior of a system that can be used to monitor the system's function. In the Service Level context ideally expressed as percentage
- Speed of Response: requests that are handled under a set threshold - "requests that are fulfilled under 500 ms divided by all requests * 100"
- Success: requests that are handled error free - "all requests but return code 500 divided by all requests *100"
- Freshness: pages that are served updated - "pages served are outdated less than 5 seconds/all pages served * 100"
Service Level Objective: Once we have SLIs we can reason about an objective
- We want 99% of all request to be faster than 500ms
- No more than 0.1% of errors
- At most 1% of pages are served outdated
- Introduction to SLOs at the Wikimedia Foundation - Google Slide Link
- Implementing Service Level Objectives - O'Reilly book - Sample Chapters
- Service Level Objective Intro in Site Reliability Engineering (SRE) book by Google
- Dependency Math at Google
Existing Service Level Objectives
- Worksheet etcd SLO
- Worksheet API Gateway