How Reliably CLI works
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
-lselector flag as well as the
-mflags'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.
cliwill write out the report in the desired format either to standard out or to a local file.
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 Avaialibilty 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.
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 agregate 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.
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 ✓ ✓ ✓ ✓ ✓
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