Composite SLOs
Using SLOs, you monitor the reliability of various aspects of your service.
However, you may need to perform a holistic assessment of service ecosystems, from the big picture down to the components that make up the services to understand how your service reliability depends on the reliability of its components.
Services in your ecosystem can include many components, each with varying complexities. Some components may report data frequently, while others provide sparse data. Also, some services may be more critical to your business than others.
Nobl9 offers a comprehensive solution, composite SLOs 2.0, or composites. Composites provide insights into such complex systems from the single entry point to the details of the smallest constituent, ensuring a complete understanding of your system's reliability. Even if you use distributed data sources to monitor your service, composites address this as wellβyou can add almost any SLO1 to your composite and have a unified view to your system's reliability.
A few limitations relate to legacy composite SLOs and recursion in a composite hierarchy.
To monitor the reliability of your multi-services systems, all you need to do is assemble SLOs that report on your required components into a multi-level structure.
Setting the component weight, you can address the diversity in the importance of services. It helps focus on a critical pathβtrack it using the Component impact graph and immediately spot services that need your attention the most.
When you build a composite2 for your complex ecosystem, imagine creating a free-form construction object: pick necessary SLOs to monitor anything from hardware performance to user journeys and configure any structure without the need to create component SLOs from scratch, just combining pre-made SLOs.
Currently,
you can create a composite SLO 2.0
using sloctl
v0.3.0 or later and the Nobl9 Terraform provider.
What's new in composite 2.0β
Legacy composite SLO | Composite 2.0 |
---|---|
Assemble SLOs from the same data source within the same project | Assemble SLOs from different data sources and projects |
Up to 12 objectives per composite SLO | Exactly one objective, 0 β20 immediate components per composite SLO, and unlimited hierarchy levels |
One-level hierarchy | Multi-level hierarchy |
All nested objectives contribute equally to the composite error budget | Composite components have weights that define how much this component contributes to the composite error budget |
No visualization of the objectives' impact on the composite SLO | Impact visualization with the Component impact graph |
SLI: either threshold (raw) or ratio (count) | SLI: other SLOs |
Composite SLO's error budget resets upon editing its objectives | Composite error budget doesn't reset when editing its components |
Missing data from a composite's objective results in missing data in your composite SLO | You decide how to treat missing data points in the composite's components: as good, as bad, or ignore it |
Objectives in the composite SLO must have different threshold values | Components in the composite can have the same threshold values |
If your organization has composite SLOs 1.0, be sure: your existing data won't be affected in the long run. We will keep supporting legacy composite SLOs at least until the end of 2024.
Composite details interfaceβ
Once you open your composite details, you land on its Overview tab. This tab displays the information about your composite according to the selected time window
Overviewβ
The composite's overview comprises the same tiles, options, and charts as an SLO. All this information relates to your composite objective.
The values in the tiles reflect the objective's status during the last seven days of the selected time window.
For 7-day time windows or shorter, the tiles show the objective's status over the entire time window.
Unfold the metadata block to access your composite history, time window type and duration, and error budget calculation method. When your composite is a part of another composite, this information is displayed as well:
Under the tiles, the Error budget remaining, Reliability burn down, and Error budget remaining charts visualize the objective's status during the whole time window selected:
Any component burning the composite error budget appears on the Component impact graph, under the charts. The graph shows the impact of each component on the composite error budget: the higher the impact, the wider the component's row in the graph.
Only the components that impact the composite error budget are displayed.
This means
that when a component reports no errors, it isn't burning the composite error budget, so the graph doesn't include it.
You can search and filter the components and zoom the graph in and out to view the components you need.
To zoom the graph in, click the component row. Click Reset zoom to zoom out to the normal
Hover the cursor over a component row to view its metadata:
- Component name
- Component objective name
- Component impact on the composite in percent
- Component normalized weight in percent
- The enclosing project and service name
Click next to the required component to open this component details:
Its metadata block includes the list of all composites that include this SLO; the tiles reflect its status during the last seven days of the selected time window (or the entire time window, if it's seven days long or shorter), and the charts visualize its values during the entire time window selected.
Structureβ
Go to the Structure tab to view your composite structure with all included components.
Component structure displays components according to the composite hierarchy you configured, including all levels of nesting, if any. By default, the components are sorted by their impact on the composite, in descending order.
You can sort the components by any column:
- Impact
- Normalized weight1
- Burn rate
- Remaining error budget
- Active alerts
- Total objectives
The total weight of all components in a composite cannot be more than 1. So, while you can set any number as the value for the component weight, all these values are brought to 1.
As a result, you see the component weight in percent, which means the proportion this component weighs relative to the other components.
Hover over the required component to learn its origin:
Click the required component to open its details page.
Alertsβ
The Alerts tab comprises alerts policies linked to your composite. It displays the triggered alerts as well (if any).
Read more about the Alerts tab.