Josh

Building in the open

Note on Implementing SLOs via Steven Thurgood and David Ferguson

Types of components

The easiest way to get started with setting SLIs is to abstract your system into a few common types of components. You can then use our list of suggested SLIs for each component to choose the ones most relevant to your service:

Request-driven

  • The user creates some type of event and expects a response. For example, this could be an HTTP service where the user interacts with a browser or an API for a mobile application.

Pipeline

  • A system that takes records as input, mutates them, and places the output somewhere else. This might be a simple process that runs on a single instance in real time, or a multistage batch process that takes many hours. Examples include:

  • A system that periodically reads data from a relational database and writes it into a distributed hash table for optimized serving
  • A video processing service that converts video from one format to another
  • A system that reads in log files from many sources to generate reports
  • A monitoring system that pulls metrics from remote servers and generates time series and alerts

Storage

  • A system that accepts data (e.g., bytes, records, files, videos) and makes it available to be retrieved at a later date.

Keyboard Shortcuts

Key Action
o Source
e Edit
i Insight
r Random
h Home
s or / Search
Josh Beckman: https://www.joshbeckman.org/notes/489435121