Skip to main content

SLA Model

APIContext lets you define Service Level Objectives (SLOs) for a project and checks your monitor results against them. This page explains how each SLO metric is measured, when an SLO counts as met, and which results are left out, so you can reproduce a number you report to a customer or a regulator.

Definitions​

TermMeaning
SLOService Level Objective: a target you set, for example "availability greater than 99.5% over a month"
SLAService Level Agreement: a contract with a customer that formalizes one or more SLOs
SLIService Level Indicator: the measured value an SLO is checked against

What an SLO is made of​

Each project SLO has four parts:

  • Metric: what is measured, such as Availability, Fail Rate, or Total latency.
  • Comparison: greater than (for Availability, Pass Rate, Quality score, and Apdex) or less than (for the failure rates and every latency).
  • Target: the number to beat, such as 99.5% or 500 ms.
  • Period: the time window the results are gathered over: a day, a week, or a month.

The measured value is computed over every result in the period from the project's API, browser, and MCP monitors.

How each metric is measured​

Every result is put in one category: Pass, Slow, Warning, or Fail.

MetricHow it is computed
AvailabilityResults that are not Fail, divided by all results. Slow and Warning results count as available
Pass RatePass results divided by all results
Slow Rate, Warning Rate, Fail RateResults in that category divided by all results
ApdexPass Rate plus half the Slow Rate
Latency metrics (DNS Lookup, TCP Connect, SSL Handshake, Upload, Processing, Download, Network, Total, and the others)The mean of that timing across the results in the period. It is an average, not a percentile such as p95 or p99
Quality scoreThe CASC score, which is calculated from results on its own terms, not from your SLO targets

Worked example​

A project's monitors return 1,000 results in a month: 970 Pass, 12 Slow, 8 Warning, and 10 Fail.

  • Availability = (1,000 − 10) / 1,000 = 99.0%
  • Pass Rate = 970 / 1,000 = 97.0%
  • Slow Rate = 12 / 1,000 = 1.2%
  • Apdex = 0.970 + (0.012 / 2) = 0.976

With an SLO of "Availability greater than 99.5%", this month does not meet the SLO.

For latency, take four results whose total times are 180, 240, 260, and 1,320 ms. The mean is 2,000 / 4 = 500 ms. One slow result moves the mean a long way, which is why a latency SLO can fail in a month where most responses were fast.

When an SLO counts as met​

The comparison is strict. "Greater than 99.5%" is met only by a value above 99.5%, and "less than 500 ms" only by a value below 500 ms. A measured value exactly equal to the target does not meet the SLO. In the latency example above, a mean of exactly 500 ms fails "Total latency less than 500 ms".

What is left out​

  • Monitors in the not monitored list. A monitor with Always in not monitored list turned on is excluded from project SLOs by default. Its results still appear on its own pages.
  • Downtimes. Monitors do not run during a scheduled downtime, so a downtime leaves no results and does not count for or against an SLO.

Default SLOs​

A project starts with these SLOs, all measured over a month. Change or remove them in Conformance Settings.

MetricDefault target
Availabilitygreater than 99.5%
Slow Rateless than 7.5%
DNS Lookupless than 100 ms
TCP Connectless than 125 ms
Quality scoregreater than 7.99

Projects with browser monitors also get Core Web Vitals defaults.

Performance Change Thresholds​

APIContext also alerts on relative degradation, in addition to absolute SLO breaches. A Performance Change Threshold fires when:

  • Latency increases by more than a set number of milliseconds or a set percentage
  • The pass / fail grade drops by more than a set number of percentage points

This catches gradual degradation that stays within the SLO but is still a meaningful trend.

Setting up SLOs​

You set SLOs and Performance Change Thresholds in the Manage Service Level Objectives and Performance Change Thresholds section of Conformance Settings (Conformance, then the Settings tab). See the SLO/SLA management guide for step-by-step instructions.

See also​