How Reliably CLI works

SLO Report

About Service Level Objectives

Service Level Objectives identify what you should care about on your system. They are what good looks like for the users of your system. If an SLO is underperforming, it will be impacting your users in some way.

What does the SLO Report Command do

When the Reliably slo report command is entered the cli will go through the following steps:

  • It will parse filters from the -l selector flag as well as the -m flags's manifest path if provided.

  • If using the manifest for filtering, your report will only show objectives defined in your manifest.

  • The CLI will request the objectives and objective results data from Reliably's API for your organization.

  • Finally the cli will write out the report in the desired format either to standard out or to a local file.

Availability SLO

An Availability SLO allows you to specify a target availability percentage for a Service. That target percentage is the percentage of the time that the service should be available.

Measuring Availability SLOs

The Reliably CLI allows you to measure you SLO targets. For availability, Reliably will calculate the percentage of error responses in the time window. All 5xx status responses are counted as errors.

Latency SLO

A Latency SLO allows you to specify a threshold latency for a service and a target percentage. The percentage gives the target percentage of responses within that threshold latency.

Measuring Latency SLOs

For latency Reliably will determine the percentage of responses under the threshold specified for the SLO.

Where does the Reliably CLI get the Data from

The Reliably CLI receives Objective Results from the API to generate the report. These Objective Results are generated by Reliably's API when it receives Indicators. For AWS the CLI uses the Cloudwatch API to aggregate data based on the defined time window. For GCP the CLI will query the GCP Monitoring API. You may also push Indicators directly to the API, which gives you the flexibility to define your own based on any metric.

Reliability Report

For all the Objectives received, Reliably will construct a report showing if the target for the Objective is met or not. You can specify different output formats for the SLO report. The default table output for a manifest would be:

reliably slo report --format table
                                          Current Objective   / Time Window  Type             Trend
  Service #1: http-api
   99% availability over 1 hour         100.00%  99%        /  1h0m0s      Availability     ✓ ✓ ✓ ✓
   99.5% availability over 1 day        100.00%  99.5%      /  1d          Availability     ✓ ✓ ✓ ✓ ✓
   99% of requests under 300ms          77.46%   99%        /  1d          Latency            ✓ ✓
   99.9% of requests under 1s           98.59%   99.9%      /  1d          Latency          ✓ ✓ ✓ ✓

  Service #2: products-api
   99% availability over 1 day          100.00%  99%        /  1d          Availability      ✓ ✓ ✓ ✓ ✓
   99.5% of requests under 200ms        100.00%  99.5%      /  1d          Latency           ✓ ✓ ✓ ✓ ✓

Custom Reports

The Reliably CLI supports custom reports from templates, so you can generate your own report formats. This section explains how to use Reports from Templates

More on that subject

Reliably SLO Report Templates

How the Reliably API works

How the Reliably Rules work

Not using Reliably yet?

Getting started with Reliably