Service-level objective templates

Service-Level Objectives SLOs 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).

CPU utilization

This SLI measures the CPU usage of selected hosts over time.

Details of the template

  • 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)

Service availability

This SLI measures the proportion of successful service requests over time.

Service availability template screen

Details of the template

  • 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

Service performance

This SLI measures the proportion of service requests that are served faster than a defined response time.

Details of the template

  • 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