自2024年7月31日起, 适用于 Java 的 AWS SDK 1.x已进入维护模式,并将于2025年12月31日end-of-support
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
处理 CloudWatch 警报
创建警报
要根据 CloudWatch 指标创建警报,请调用PutMetricAlarmRequest填充警报条件 AmazonCloudWatchClient的's putMetricAlarm
方法。
导入
import com.amazonaws.services.cloudwatch.AmazonCloudWatch; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.ComparisonOperator; import com.amazonaws.services.cloudwatch.model.Dimension; import com.amazonaws.services.cloudwatch.model.PutMetricAlarmRequest; import com.amazonaws.services.cloudwatch.model.PutMetricAlarmResult; import com.amazonaws.services.cloudwatch.model.StandardUnit; import com.amazonaws.services.cloudwatch.model.Statistic;
代码
final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); Dimension dimension = new Dimension() .withName("InstanceId") .withValue(instanceId); PutMetricAlarmRequest request = new PutMetricAlarmRequest() .withAlarmName(alarmName) .withComparisonOperator( ComparisonOperator.GreaterThanThreshold) .withEvaluationPeriods(1) .withMetricName("CPUUtilization") .withNamespace("{AWS}/EC2") .withPeriod(60) .withStatistic(Statistic.Average) .withThreshold(70.0) .withActionsEnabled(false) .withAlarmDescription( "Alarm when server CPU utilization exceeds 70%") .withUnit(StandardUnit.Seconds) .withDimensions(dimension); PutMetricAlarmResult response = cw.putMetricAlarm(request);
列出警报
要列出您创建 AmazonCloudWatchClient的 CloudWatch 警报,请使用可以用来设置结果选项的's describeAlarms
方法。DescribeAlarmsRequest
导入
import com.amazonaws.services.cloudwatch.AmazonCloudWatch; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.DescribeAlarmsRequest; import com.amazonaws.services.cloudwatch.model.DescribeAlarmsResult; import com.amazonaws.services.cloudwatch.model.MetricAlarm;
代码
final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); boolean done = false; DescribeAlarmsRequest request = new DescribeAlarmsRequest(); while(!done) { DescribeAlarmsResult response = cw.describeAlarms(request); for(MetricAlarm alarm : response.getMetricAlarms()) { System.out.printf("Retrieved alarm %s", alarm.getAlarmName()); } request.setNextToken(response.getNextToken()); if(response.getNextToken() == null) { done = true; } }
可以通过调用getMetricAlarms
返回的来获取警报列表describeAlarms
。DescribeAlarmsResult
结果可以分页。要检索下一批结果,请在原始请求对象中使用 DescribeAlarmsResult
对象的 getNextToken
方法的返回值调用 setNextToken
,并将已修改的请求对象传回对 describeAlarms
的另一个调用。
注意
您还可以使用的describeAlarmsForMetric
方法检索特定指标 AmazonCloudWatchClient的警报。它的使用类似于 describeAlarms
。
删除警报
要删除 CloudWatch 警报,请使用DeleteAlarmsRequest包含一个或多个要删除的警报名称的调用deleteAlarms
方法。 AmazonCloudWatchClient
导入
import com.amazonaws.services.cloudwatch.AmazonCloudWatch; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.DeleteAlarmsRequest; import com.amazonaws.services.cloudwatch.model.DeleteAlarmsResult;
代码
final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); DeleteAlarmsRequest request = new DeleteAlarmsRequest() .withAlarmNames(alarm_name); DeleteAlarmsResult response = cw.deleteAlarms(request);
更多信息
-
在 Amazon CloudWatch 用户指南中@@ 创建 Amazon CloudWatch 警报
-
PutMetricAlarm在 Amazon CloudWatch API 参考中
-
DescribeAlarms在 Amazon CloudWatch API 参考中
-
DeleteAlarms在 Amazon CloudWatch API 参考中