Skip to content
GitHubXDiscord

ServiceLevelObjective

The ServiceLevelObjective resource allows you to define and manage AWS ApplicationSignals ServiceLevelObjectives to measure the performance and reliability of your applications.

Create a basic Service Level Objective with required properties and a couple of common optional configurations.

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"
});

Define a Service Level Objective with burn rate configurations and exclusion windows for better control over your SLO metrics.

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."
});

Create a Service Level Objective based on request metrics, demonstrating how to use request-based SLI configurations.

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."
});