A target value or range for a service level indicator, the reliability the team commits to internally.
A service level objective is a target value for a measured aspect of a service's reliability, set over a window of time: the 99.9 percent of requests that should succeed this quarter, the latency the 99th percentile should stay under. It turns the vague promise "the service should be reliable" into a number a team can be held to. Its more subtle jobJobUserJob To Be Done: what the user is trying to accomplishView reference → is to say when reliability is good enough, so a team knows when to stop spending on it and start shipping.
The concept was formalised by Google's Site Reliability Engineering practice, founded by Ben Treynor Sloss, who coined the term Site Reliability Engineering. The canonical treatment is the chapter Service Level Objectives in the Site Reliability Engineering book (O'Reilly, 2017). It draws three terms apart with care. A service level indicatorService Level IndicatorDevOps & PlatformA service level indicator (SLI)View reference → is the measurement, the actual ratio of good requests to total. A service level objective is the target set for that measurement. A service level agreementService Level AgreementCustomer SuccessA service level agreement with customersView reference → is the contract with users that attaches consequences, usually financial, to meeting or missing the objectivesObjectiveStrategyA strategic goal (OKR)View reference → inside it.
The genuinely original move was the error budget, built on the observationObservationUser ResearchA specific behaviour or statement observedView reference → that 100 percent is the wrong reliability target for almost everything, because no user can tell the difference between 100 percent and 99.999 percent available. If the objective is 99.9 percent, the remaining 0.1 percent is a budget the team is allowed to spend on releasesReleaseProduct SpecificationA shipped version of the productView reference →, experimentsExperimentValidationA test designed to validate a hypothesisView reference →, and riskRiskComplianceA risk to the product or businessView reference →. The budget reframed reliability as a resource to allocate, and it gave product and operations a shared, unemotional rule: while there is budget, ship; once it is spent, freeze featuresFeatureProduct SpecificationA product capability or featureView reference → and stabilise. Google's own framing is that the error budgetError BudgetDevOps & PlatformAn error budget for a serviceView reference → removes the politics from arguments between developers who want to launch and operators who want stability.
The practice matured into a discipline of its own, covered at length in the follow-up SRE Workbook. The recurring lesson there is that the maths is the easy part. The hard part is choosing an objective that reflects what users actually feel, and resisting the urge to set a number you cannot defend when it bites.
A team sets an objective on its checkout API: 99.95 percent of requests in a rolling 28-day window should return successfully. That permits roughly twenty-one minutes of full unavailability per window. The indicator is the ratio of good requests to total, measured at the load balancer, so the number reflects what users hit rather than what the servers think happened.
A risky migration burns nine minutes of budget in one bad afternoon. With twelve minutes left, the team pauses the next two feature releases and spends a sprint hardening the deploy pipeline. Nobody debates whether reliability is "good enough", because the budget already answered the question. The quarter ends with the objective met and the pipeline safer, and the decisionDecisionStrategyA recorded decision with context, rationale, and consequencesView reference → to slow down was a reading off a gauge rather than a fight between two teams.
In the Unified Product Graph, the canonical type is Service Level ObjectiveDevOps & PlatformA service level objective (SLO), with the older abbreviation service_level_objectiveService Level ObjectiveDevOps & PlatformA service level objective (SLO) deprecated in its favour so the full vocabulary reads plainly in the graph. It is a hub in the Operations and Quality region with slodevops as its home domain. The inbound Productcommits toService Level Objectivehierarchy records that an objective is a promise the product makes, not a passive metricMetricStrategyA unified metric that measures progress, health, or behaviour across the productView reference →. Its outbound edges assemble the SRE vocabulary in one structure: product_commits_to_service_level_objectiveService Level Objectivemeasured byService Level Indicatorhierarchy ties it to the measurement, and service_level_objective_measured_by_service_level_indicatorService Level Objectivebudgets asError Budgethierarchy ties it to the allowance it produces. The cross-domain edges make it answerable across the organisation: service_level_objective_budgets_as_error_budgetService Level ObjectivesatisfiesService Level Agreementcross-domain connects the internal target to the external promise, and service_level_objective_satisfies_service_level_agreementService Level ObjectivetracksMetriccross-domain reaches into Analytics. That structure keeps the three letters from collapsing into each other, because each term holds a distinct, queryable place.service_level_objective_tracks_metric
Type-specific fields on BaseNode
target_percentagenumberTarget percentage. The reliability commitment. @example 99.9 (three nines), 99.95, 99.99 (four nines)
windowstringEvaluation window. @example "30 days", "rolling 28 days", "calendar quarter"
current_percentagenumberCurrent achieved percentage. Compared against `target_percentage` for health. @example 99.92 (above a 99.9 target)
slo_typestringMeasurement mechanism. `metric` = ratio (good/total). `monitor` = monitor-based. `time_slice` = uptime windows.
warning_thresholdnumberSoft alert threshold before the target breaches. Gives teams time to act. @example 99.95 (warn at 99.95% when target is 99.9%)
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
7 edge types connected to this entity.
product_commits_to_service_level_objectiveinfrastructure_component_committed_to_service_level_objectiveservice_level_objective_measured_by_service_level_indicatorservice_level_objective_budgets_as_error_budgetservice_level_objective_tracks_metricservice_level_objective_satisfies_service_level_agreementincident_breaches_service_level_objective