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.