ServiceLevelObjective ​
The ServiceLevelObjective resource allows you to define and manage AWS ApplicationSignals ServiceLevelObjectives to measure the performance and reliability of your applications.
Minimal Example ​
Create a basic Service Level Objective with required properties and a couple of common optional configurations.
ts
import AWS from "alchemy/aws/control";
const basicSlo = await AWS.ApplicationSignals.ServiceLevelObjective("basicSlo", {
name: "UserLoginSLO",
Sli: {
type: "requestBased",
requestBasedSli: {
successCount: "100",
totalCount: "120"
}
},
Goal: {
type: "percentage",
value: 95
},
Description: "Measures the success rate of user login requests"
});
Advanced Configuration ​
Define a Service Level Objective with burn rate configurations and exclusion windows for better control over your SLO metrics.
ts
const advancedSlo = await AWS.ApplicationSignals.ServiceLevelObjective("advancedSlo", {
name: "CheckoutSLO",
Sli: {
type: "requestBased",
requestBasedSli: {
successCount: "200",
totalCount: "250"
}
},
Goal: {
type: "percentage",
value: 98
},
BurnRateConfigurations: [
{
threshold: 5,
duration: "1h"
},
{
threshold: 10,
duration: "2h"
}
],
ExclusionWindows: [
{
startTime: "2023-10-01T14:00:00Z",
endTime: "2023-10-01T15:00:00Z"
}
],
Description: "Measures the success rate of checkout requests with exclusion for maintenance windows."
});
Integrating Request-Based SLI ​
Create a Service Level Objective based on request metrics, demonstrating how to use request-based SLI configurations.
ts
const requestBasedSlo = await AWS.ApplicationSignals.ServiceLevelObjective("requestBasedSlo", {
name: "ApiResponseSLO",
RequestBasedSli: {
requestCount: {
successCount: "300",
totalCount: "350"
}
},
Goal: {
type: "percentage",
value: 90
},
Description: "Tracks API response success rates for our critical endpoints."
});