Step 4: Create an SLO
SLOs allow you to define the reliability of your products and services in terms of customer expectations. You can create SLOs for user journeys, internal services, or even infrastructure.
You can now test and adjust your SLO's targets and view updated error budgets and error budget burn down with SLI analyzer. Once you've determined the right target using your existing data, you can easily create a new SLO.
Configurationβ
With a service and its data sources configured, you can define the thresholds for service level indicators. Together with a time window, these create a unique SLO.
To create an SLO in the Nobl9 UI:
- Go to the Service Level Objectives page.
- Click the button to start the SLO wizard, and follow the five-step configuration process in the wizard.
- In step 1 of the SLO wizard:
- In step 2 of the SLO wizard:
- Threshold metric
- Ratio metric
- For the Non-incremental method, we expect it to be the components of the sum.
- For the Incremental method, we expect the value of a metric to be the current sum of some numerator.
- In step 3 of the SLO wizard:
- Rolling
- Calendar-aligned
- In step 4 of the SLO wizard:
- Occurences counts good attempts against the count of total attempts.
- Time Slices measures how many good minutes were achieved (minutes where a system is operating within defined boundaries) during a time window.
- Enter SLO objective Display Name. The display name allows you to enter a name with spaces.
- Enter unique SLO objective Name. The name is required and can only contain lowercase, alphanumeric characters, and dashes. For example:
- Enter the Target. Define the percentage of good events out of total events that you want to meet the target values for the SLI.
- If you selected the Time Slices method as an error budget calculation method:
- Enter the Time Slice allowance. Define the percentage of the time slice for which you want to meet that target. This is used to determine if a time slice should be considered good or bad.
- Enter the target Values. Compare the values gathered from the metric source. For example, if
- Below, you can see a query provided in step 2 of the SLO wizard. You can modify the query for each added objective.
- In step 5 of the SLO wizard:
- Enter SLO Display Name. The display name allows you to enter a name with spaces.
- Enter SLO Name. The name is required and can only contain lowercase, alphanumeric characters, and dashes. For example:
- Select Alert policies from the drop-down list to configure alerts. For more information, go to the Create alerts SLOcademy section.
- Select or add Labels. For more information on labels, check the Labels section of the documentation.
- Attach a Link to your SLO (optional). You can add up to 20 links to an SLO.
- Enter a Description (optional). Here you can add details such as who is responsible for the SLO (team/owner) and the purpose of creating it.
- Click Create SLO
Select a data sourceβ
Specify a metricβ
Select the metric type and enter a query.
A threshold metric is a single time series evaluated against a threshold.
A ratio metric allows you to enter two time series to compare (for example, a count of good requests and total requests).
For the ratio metric, choose the data count method:
For details on how to configure a query for each data source, refer to the in-app help panels in the Nobl9 UI or to the Nobl9 documentation.
Define a time windowβ
Define a time window: choose a rolling or calendar-aligned time window.
Rolling time windows are better for tracking the recent user experience of a service. The maximum limit is 31 days.
Calendar-aligned windows are best suited for SLOs that are intended to map to business metrics that are measured on a calendar-aligned basis, such as every calendar month or every quarter. The maximum limits are: 1 year, 12 months, 366 days.
Select the error budget calculation methodβ
Select either Occurrences or Time Slices method:
Add your SLO objective(s)β
You can define up to 12 objectives for an SLO:
objective-one
.You canβt edit the SLO objective's name once youβve created the SLO.
Values less than 200
is the objective for a good
experience, values below 200 are considered good.Define SLO attributesβ
my-slo-name
. This field is populated automatically when you enter a display name, but you can edit the result.Enter a display name for the title of the link (max. 63 characters) and paste the URL.
You can share your SLO by getting a deep link in your browserβs address bar. Copy and share it with your teammates.
After you created the SLO in Nobl9 UI, you can also see an automatically generated YAML configuration for this SLO. For this, open the SLO details view and click the View YAML button to see the configuration modal.
Check out the configuration video:β
For this example configuration video, we will query Prometheus for a latency metric by adding the following query in the Threshold Metric box:
latency_west_c7{code="ALL",instance="localhost:3000",job="prometheus",service="globalcount"}
In this example, weβll set the target at 99%. This means 99% of occurrences for latency will be with the tolerance defined below. We set the desired value to less than 2000.
This means that for 99% of the events in the time window, we would expect the latency to be under two seconds to meet our objective. Any event with a latency over two seconds causes error budget to burn. If more than 1% of the events during the time period have a latency over two seconds, we will run out of error budget.
It takes a few minutes for the data to be populated. Remember: if you selected a longer time window, it may take longer for the chart to appear as the data is downsampled into larger slices for the chart view.
Check out also the video on adding the Prometheus data source using the agent connection method in Nobl9 UI.