Service-Level Objectives offers a set of pre-configured service-level objective (SLO) templates for some of the primary monitoring domains, which you can use to create your own SLOs.
We also offer a list of SLO examples. For more information on SLO examples, see Service-level objective examples.
See the SLO configuration templates to understand better the service-level indicators (SLIs).
This SLI measures the CPU usage of selected hosts over time.
Data source: metrics (timeseries)
Entity scope: hosts
SLI DQL query:
timeseries sli=avg(dt.host.cpu.usage), by: { dt.entity.host }, filter: in(dt.entity.host, {HOST-IDs })| fieldsAdd entityName(dt.entity.host)
This SLI measures the proportion of successful service requests over time.
Data source: metrics (timeseries)
Entity scope: services
SLI DQL query:
timeseries { total=sum(dt.service.request.count) ,failures=sum(dt.service.request.failure_count) }, by: { dt.entity.service }, filter: { in (dt.entity.service, { SERVICE-IDs }) }| fieldsAdd sli=(((total[]-failures[])/total[])*(100))| fieldsAdd entityName(dt.entity.service)| fieldsRemove total, failures
This SLI measures the proportion of service requests that are served faster than a defined response time.
Data source: metrics (timeseries)
Entity scope: services, latency threshold of user input
SLI DQL query:
timeseries total=avg(dt.service.request.response_time), default:0, by: { dt.entity.service }, filter: {in(dt.entity.service, { SERVICE-IDs }) }| fieldsAdd high=iCollectArray(if(total[]> (1000 * { $responseTimeInMilliSeconds }), total[]))| fieldsAdd low=iCollectArray(if(total[]<= (1000 * { $responseTimeInMilliSeconds }), total[]))| fieldsAdd highRespTimes=iCollectArray(if(isNull(high[]),0,else:1))| fieldsAdd lowRespTimes=iCollectArray(if(isNull(low[]),0,else:1))| fieldsAdd sli=100*(lowRespTimes[]/(lowRespTimes[]+highRespTimes[]))| fieldsAdd entityName(dt.entity.service)| fieldsRemove total, high, low, highRespTimes, lowRespTimes