LogoLogo
HomeApplicationBlog
  • WELCOME
    • Overview
    • Quickstart
    • Key Features
    • Demo
  • ONBOARDING YOUR DATA
    • Getting started
    • Prerequisites
    • Integrations
      • Prometheus
        • Handling organization_id
        • Privacy and Security
      • CloudWatch
      • Datadog
      • Coming soon
      • Request integration
    • Self-hosting
      • Configuration yaml
      • Running locally with Docker
      • Running with Kubernetes (k8s)
    • Data API
      • Example implementation
    • Filters
      • Open source log parsing library
      • Data hashing & transformation
    • Custom adapters
  • API (BETA)
    • Authentication
    • Pagination
    • API Reference
  • How to's
    • Tutorials
      • Build a SLI
      • Build a SLO
      • Create an Organization
      • Build a SLA
      • Configure a SLA Portal
    • Guides
    • Glossary
  • MISC
    • Changelog
    • Join the Closed Beta
  • Legal
    • Terms of Service
    • Contributor License Agreement
    • Privacy Notice
Powered by GitBook
On this page
  • Create a Value SLI
  • Examples
  • Create a Percentage SLI
  • Examples
  1. How to's
  2. Tutorials

Build a SLI

This guide walks you through creating a Service Level Indicator (SLI) in slaOS

PreviousTutorialsNextBuild a SLO

Last updated 8 months ago

SLIs are key metrics that measure specific aspects of your service's performance and reliability. By following these steps, you'll learn to configure effective SLIs to monitor your service quality.

Before writing a SLI query, the engine asks you to state whether you are defining a Value SLI (e.g. latency, MTTD) or a Percentage SLI (e.g. uptime, error rate). It does so to allow for maximum flexibility in terms of the Objective (SLO) you get to define later, as the two streams demand different treatment to produce error free results.

Create a Value SLI

Follow these steps to create a Value Service Level Indicator (SLI):

  1. Find and click on "Indicators" in the side navigation bar

  2. Click the "+ New SLI" button to open the Create SLI modal

  3. Choose "Value" as the type of SLI you'll be building

  4. Choose a metric query, aggregator, and filter

    1. Allowed aggregators: COUNT, SUM, MAX, MIN, AVG

      n/a is also an acceptable input; this will output an array of metrics without any aggregation

    2. You can create multiple queries by clicking "+ New Query" and add a formula in the formula box to define the relationship between them.

    3. Operators allowed on the formula builder: * , /, +, - , < , > , <= , >=, = , !=

  5. Provide a clear, descriptive name for your SLI and a description to explain its purpose and function.

  6. Click the "Save" button to create your new Value SLI.

Examples

QUERY

A: SELECT {n/a} {latency_metric} FROM {key} WHERE {status_code < 500}

Unit ms

Example implementation 👇

This SLI will output a stream of latencies like {121,90,48,291,44,29,90,81...} seconds

QUERY

A: SELECT {AVG} {latency_metric} FROM {key} WHERE {status_code < 500}

Unit ms

Example Implementation 👇

This SLI will output a the average latency of all the latencies sent within a period. For example, if the latencies sent were {121,90,48,291,44,29,90,81} seconds, the output of which would be 99.25 seconds.

QUERY

A: SELECT {n/a} {external_timestamp_metric} FROM {key1}

B: SELECT {n/a} {internal_timestamp_metric} FROM {key2}

Unit epochs

Formula: A - B

Example implementation 👇

This SLI will output a stream of integers like {2,5,1,1,2,1,1,3,...} epochs.

QUERY

A: SELECT {AVG} {external_timestamp_metric} FROM {key1}

B: SELECT {AVG} {internal_timestamp_metric} FROM {key2}

Formula: A - B

Unit epochs

Example implementation 👇

This SLI will output the average data freshness within a period. For example, if the external_timestamp averages to 1.2 epochs and the internal_timestamp averages out to 1 epoch, the SLI will output 0.2 epochs.

Create a Percentage SLI

Follow these steps to create a Percentage Service Level Indicator (SLI):

  1. Find and click on "Indicators" in the side navigation bar

  2. Click the "+ New SLI" button to open the Create SLI modal

  3. Choose "Percentage" as the type of SLI you'll be building

  4. Choose a metric query, aggregator, and filter

    1. Allowed aggregators: COUNT, SUM, MAX, MIN, AVG

      n/a is also an acceptable input; this will output an array of metrics without any aggregation

    2. You can create multiple queries by clicking "+ New Query" and add a formula in the formula box to define the relationship between them

    3. Operators allowed on the formula builder: * , /, +, - , < , > , <= , >=, = , !=

  5. Provide a clear, descriptive name for your SLI and a description to explain its purpose and function

  6. Click the "Save" button to create your new Percentage SLI

Examples

QUERY

A: SELECT {count} {*} FROM {key1} WHERE {status_code < 500}

B: SELECT {count} {*} FROM {key2}

Formula : A/B

Example implementation 👇

The SLI will output a ratio, where the numerator counts all the events where the status code is less than 500 and the denominator is all events.

QUERY

A: SELECT {n/a} {uptime_metric} FROM {key}

Example implementation 👇

The SLI will output the average of the uptime metric over a time period. For example, if the uptime metric is passed hourly to slaOS as {0.9998, 0.9992, 0.9892, 0.4819, 0.9999, 0.9759}, the SLI output will be 0.90765 or 90.965%

QUERY

A: SELECT {count} {*} FROM {key1} WHERE {status_code >= 500}

B: SELECT {count} {*} FROM {key2}

Formula : A/B

Example implementation 👇

The SLI will output a ratio, where the numerator counts all the events where the status code is more than 500 and the denominator is all events.