SLOs (service-level objectives) are an agreed-upon target that must be achieved for each activity, function, and process to provide the best opportunity for customer success. SLOs represent the performance or health of a service. The SLO summary widget visualizes the status, budget, and remaining error budget of the existing SLOs. It displays all underlying groups of the SLO and lets you sort the groups by any of the time windows in the widget. Use this widget to build out meaningful dashboards with the most critical SLO information:
- View all of the SLO groups directly in the widget: For any metric-based and time slice SLOs containing groups, you can see all of the groups in the widget, compared to the previous limit of 20 groups. This is helpful for SLOs containing a lot of groups, as the widget provides key information related to SLO groups.
- Set your preferred sorting order for the SLO groups in the widget: For all SLO types, sort groups based on any of the available time windows in the widget. Quickly identify the best and worst performing SLO groups for different time periods.
- Easily identify time periods with missing data in an SLO: For all SLO types, the SLO summary widget shows time periods with missing data as “-”. The “-” is displayed for any time window where the entire window is missing data.
Setup
Use the SLO Summary widget to visualize a Service Level Objective (SLO) on a dashboard.
Configuration
- Select an SLO from the dropdown menu.
- For metric-based and Time Slice SLOs: You can filter your query with tags and leverage template variables to dynamically scope your results:
- Take advantage of template variables by using the filter by field to scope the SLO statuses the widget displays. For example,
filter by $env
scopes your SLO query to whatever value you choose in the dashboard for the env template variable. - Add additional scope and context to your SLO metric queries even if the tags were not included in the original SLO configuration. For example, if the original SLO query is
sum:trace.flask.request.hits{*} by {resource_name}.as_count()
and you filter by env:prod
in the widget, your data will be scoped to only that from your prod
environment.
- Set up to three different time windows.
- Select your display preferences.
Options
Set the time windows
Select up to three different time windows from the following:
Rolling time windows: 7, 30, or 90 days
Calendar time windows: week to date, previous week, month to date, or previous month
Global time (supported for metric-based and Time Slice SLOs): This option allows you to display your SLO’s status and error budget over arbitrary time periods within the past 90 days
Note: To display an error budget and color-code your Global time
SLO status value as green or red, you need to specify an SLO target. If the SLO input target is not specified, only the SLO status is shown, and the font color remains gray.
Display preferences
Select whether to show or hide remaining error budget by toggling the Show error budget
option.
If you are visualizing an SLO with multiple groups or a monitor-based SLO with multiple monitors, select your View mode
:
For SLOs with groups (metric-based or Time Slice SLO with groups, or monitor-based SLOs with a single monitor broken into groups), there are the following three view modes:
Overall
: displays the overall SLO status percentages and targetsGroups
: displays a table of status percentages for each groupBoth
: displays both the overall SLO status percentages and targets and table of status percentages for each group
For monitor-based SLOs configured with multiple monitors, there are the following three view modes:
Overall
: displays the overall SLO status percentages and targetsMonitors
: displays a table of status percentages for each monitorBoth
: displays both the overall SLO status percentages and targets and table of status percentages for each monitor
When you set the View mode
to Groups
, Monitors
, or Both
:
- The groups are sorted by ascending status in the smallest time window by default. After adding the widget to a dashboard, you have the ability to sort by status for any of the configured time windows through the widget UI.
- For metric-based and Time Slice SLOs, the widget displays all underlying groups of the SLO. For monitor-based SLOs, the widget displays up to 20 groups if specific groups have been selected for the SLO, or it displays the 5 groups with the lowest status percentages if no specific groups have been selected.
Note: For monitor-based SLOs, you can only use the Overall
view mode when the Global Time
time window option is selected.
API
This widget can be used with the Dashboards API. See the following table for the widget JSON schema definition:
Expand All
Additional filters applied to the SLO query.
Defined global time target.
How to align the text on the widget.
Allowed enum values: center,left,right
Type of the SLO widget.
Allowed enum values: slo
default: slo
Define how you want the SLO to be displayed.
Allowed enum values: overall,component,both
Type of view displayed by the widget.
default: detail
{
"additional_query_filters": "string",
"global_time_target": "string",
"show_error_budget": false,
"slo_id": "string",
"time_windows": [],
"title": "string",
"title_align": "string",
"title_size": "string",
"type": "slo",
"view_mode": "string",
"view_type": "detail"
}
Further Reading
Additional helpful documentation, links, and articles: