Creating a global SLO service is a great way to manage and coordinate the performance objectives of related services and applications.
Service Level Objectives (SLOs) are critical for maintaining the stability and reliability of IT services. These SLOs help to define and measure the expected level of performance for a particular service or application and can be used to track and improve service quality over time.
Creating a global SLO service is one way to manage and coordinate SLOs effectively. This strategy establishes service policies around which you can organize the performance objectives of related services and applications.
What is a global SLO service?
A global SLO service is a defined set of standards that combines the service level objectives of multiple services or applications into a single overall measure of service quality. Creating a combined global SLO service enables you to track the performance of multiple related services to assess the performance of a larger overall service. Grouping SLO services this way also enables you to better understand and manage the user experience of your combined services.
Imagine you are providing a service with several entry points: the public web, the mobile service, and a telephony service attended by operators.
You want to know at a high level how this service is performing regardless of the entry point your customers are using.
First, we need to define the SLOs for each of the individual services. We can establish these SLOs by setting availability and performance targets, such as a target uptime percentage or a target response time. Additionally, you can weight each individual SLO service according to its importance.
Case 1: Simple global SLO
In our scenario, the main channel to sell the product is the mobile application, followed by the web application, and finally, a few customers who use the phone. The management decided to weigh the services accordingly: the telephony service weighs 0.75, the web service 1, while the mobile service weighs 1.5.
We can build the availability SLO using the Dynatrace SLO wizard.
For detailed instructions, see the topic Example configuration of service-level objective definitions in the Dynatrace documentation.
Once we have defined and weighted the SLOs for each service, we want to calculate their global SLO service value. To do that, we’ll multiply each service’s availability and performance targets by its weight and add these values to get a sum of weighted values. Then we’ll divide this sum by the sum of the weights.
Uptime SLO | Weight | |
Mobile service | 99% | 1.5 |
Web service | 99.5% | 1 |
Telephony service | 98% | 0.75 |
To calculate the global SLO, we first multiply the availability and performance targets for each service by its weight and then add these values to get a sum of weighted values:
Mobile service | Web service | Telephony service |
99 x 1.5 | 99.5 x 1 | 98 x 0.75 |
(99 x 1.5) + (99.5 x 1) + (98 x 0.75) = 321.5
Then divide this sum by the sum of the weights:
321.5/(1.5+1+0.75)=98.92
The final global SLO would be 98.92, which represents the overall measure of service, considering the relative importance of each service.
Case 2: Complex global SLO
Let’s now consider a more complex use case. In this case, we’re considering not just the uptime but also the performance. We want X% of the request under Y milliseconds (ms).
Uptime Objective | Performance Objective | Weight | |
Mobile service | 99% | 95% – 200ms | 1..25 |
Web service | 99.5% | 98% – 150 ms | 1 |
Telephony service | 98% | 90% – 300 ms | 0.75 |
We already know how to build the availability SLO. How can we achieve the performance objective?
Once again, we can select the Service performance from the SLO wizard.
Again, for details about this process, see the topic Example configuration of service-level objective definitions in the Dynatrace documentation.
For each service, the math will be:
Uptime SLO | Performance SLO | Math | |
Mobile service | 99% | 95% | (99+95)/2=97 |
Web service | 99.5% | 98% | (99.5+98)/2=98.75 |
Telephony service | 98% | 90% | (98+90)/2=94 |
Now we weight each service SLO as we did in the previous case as follows:
Mobile service | Web service | Telephony service |
97 x 1.25 | 98.75 x 1 | 94 x 0.75 |
(97 x 1.25) + (98.75 x 1) + (94 x 0.75) = 290.5
Then divide this sum by the sum of the weights:
290.5/(1.25+1+0.75)=98.83
The final Global SLO would be 98.83.
Global SLO service management in Dynatrace
Building a global SLO service for a complex service can be as complex as you decide. Applying weights to an individual SLO can help to build it.
Each time you create an SLO in Dynatrace, you will have four generated metrics. You can use the status metric as a reference for the global SLO.
This blog is just an example calculation, and the actual weights and targets will depend on the specific requirements of the IT landscape and the organization.
It is also important to regularly review and update the SLOs and weights, as the organization’s requirements can change over time.
Learn more
For a deeper dive into calculating specific metrics for SLOs, check out this performance clinic where Alberto Gelmi, Software Engineer at Dynatrace, walks through advanced metrics expressions. In this performance clinic, you’ll learn how to do cool things like set default values for missing metrics, do fancy folding, and organize your data into buckets using partition transformation. These techniques will help you achieve even trickier global SLOs with some sophisticated math.
For additional insights into SLOs, check our Dynatrace University tutorial, Getting started with SLOs in Dynatrace.
Looking for answers?
Start a new discussion or ask for help in our Q&A forum.
Go to forum