Skip to content
GitHubXDiscord

Alarm

The Alarm resource allows you to manage AWS Lightsail Alarms for monitoring your Lightsail resources. You can set thresholds for various metrics to receive notifications when those thresholds are breached.

Create a basic alarm that monitors CPU utilization:

import AWS from "alchemy/aws/control";
const cpuAlarm = await AWS.Lightsail.Alarm("cpu-utilization-alarm", {
MetricName: "CPUUtilization",
ComparisonOperator: "GreaterThanThreshold",
TreatMissingData: "missing",
AlarmName: "HighCPUUtilization",
MonitoredResourceName: "my-lightsail-instance",
EvaluationPeriods: 1,
NotificationEnabled: true,
Threshold: 80
});

Configure an alarm that monitors network in/out traffic with multiple notification protocols:

const networkAlarm = await AWS.Lightsail.Alarm("network-traffic-alarm", {
MetricName: "NetworkIn",
ComparisonOperator: "GreaterThanThreshold",
AlarmName: "HighNetworkInTraffic",
MonitoredResourceName: "my-lightsail-instance",
EvaluationPeriods: 2,
Threshold: 1000000,
NotificationEnabled: true,
ContactProtocols: ["Email", "SMS"],
NotificationTriggers: ["Alarm"]
});

Create an alarm that triggers when there are multiple data points that exceed the threshold:

const multiDataPointAlarm = await AWS.Lightsail.Alarm("multi-data-point-alarm", {
MetricName: "DiskReadOps",
ComparisonOperator: "GreaterThanThreshold",
AlarmName: "HighDiskReadOperations",
MonitoredResourceName: "my-lightsail-instance",
EvaluationPeriods: 3,
DatapointsToAlarm: 2,
NotificationEnabled: true,
Threshold: 5000
});

Set up an alarm that treats missing data as “breaching” the threshold:

const missingDataAlarm = await AWS.Lightsail.Alarm("missing-data-alarm", {
MetricName: "CPUUtilization",
ComparisonOperator: "GreaterThanThreshold",
AlarmName: "CPUUtilizationMissingData",
MonitoredResourceName: "my-lightsail-instance",
EvaluationPeriods: 1,
Threshold: 70,
TreatMissingData: "breaching"
});