기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudWatch 알람 사용
경보 만들기
CloudWatch메트릭을 기반으로 경보를 만들려면 경보 조건이 PutMetricAlarmRequestputMetricAlarm
메서드를 호출하십시오.
가져오기
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.cloudwatch.CloudWatchClient; import software.amazon.awssdk.services.cloudwatch.model.Dimension; import software.amazon.awssdk.services.cloudwatch.model.PutMetricAlarmRequest; import software.amazon.awssdk.services.cloudwatch.model.ComparisonOperator; import software.amazon.awssdk.services.cloudwatch.model.Statistic; import software.amazon.awssdk.services.cloudwatch.model.StandardUnit; import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException;
코드
public static void putMetricAlarm(CloudWatchClient cw, String alarmName, String instanceId) { try { Dimension dimension = Dimension.builder() .name("InstanceId") .value(instanceId).build(); PutMetricAlarmRequest request = PutMetricAlarmRequest.builder() .alarmName(alarmName) .comparisonOperator( ComparisonOperator.GREATER_THAN_THRESHOLD) .evaluationPeriods(1) .metricName("CPUUtilization") .namespace("AWS/EC2") .period(60) .statistic(Statistic.AVERAGE) .threshold(70.0) .actionsEnabled(false) .alarmDescription( "Alarm when server CPU utilization exceeds 70%") .unit(StandardUnit.SECONDS) .dimensions(dimension) .build(); cw.putMetricAlarm(request); System.out.printf( "Successfully created alarm with name %s", alarmName); } catch (CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
에서 전체 예제를
경보 나열
생성한 CloudWatch 경보를 나열하려면 결과 옵션을 설정하는 데 사용할 수 DescribeAlarmsRequestdescribeAlarms
메서드를 호출하십시오.
가져오기
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.cloudwatch.CloudWatchClient; import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException; import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsRequest; import software.amazon.awssdk.services.cloudwatch.model.DescribeAlarmsResponse; import software.amazon.awssdk.services.cloudwatch.model.MetricAlarm;
코드
public static void desCWAlarms( CloudWatchClient cw) { try { boolean done = false; String newToken = null; while(!done) { DescribeAlarmsResponse response; if (newToken == null) { DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); response = cw.describeAlarms(request); } else { DescribeAlarmsRequest request = DescribeAlarmsRequest.builder() .nextToken(newToken) .build(); response = cw.describeAlarms(request); } for(MetricAlarm alarm : response.metricAlarms()) { System.out.printf("\n Retrieved alarm %s", alarm.alarmName()); } if(response.nextToken() == null) { done = true; } else { newToken = response.nextToken(); } } } catch (CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } System.out.printf("Done"); }
에서 DescribeAlarmsResponseMetricAlarms
확인할 수 있습니다. describeAlarms
결과를 페이징할 수 있습니다. 다음 결과 배치를 검색하려면 응답 객체에서 nextToken
를 호출하고 토큰 값을 사용하여 새 요청 객체를 빌드합니다. 그런 다음 새 요청을 사용해 다시 describeAlarms
메서드를 호출합니다.
참고
CloudWatchClient's describeAlarmsForMetric
메서드를 사용하여 특정 지표에 대한 경보를 검색할 수도 있습니다. 이 메서드의 용도는 describeAlarms
와 비슷합니다.
전체 예제를
경보 삭제
경보를 삭제하려면 삭제하려는 CloudWatch 경보 이름을 하나 이상 DeleteAlarmsRequestdeleteAlarms
메서드를 호출합니다.
가져오기
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.cloudwatch.CloudWatchClient; import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException; import software.amazon.awssdk.services.cloudwatch.model.DeleteAlarmsRequest;
코드
public static void deleteCWAlarm(CloudWatchClient cw, String alarmName) { try { DeleteAlarmsRequest request = DeleteAlarmsRequest.builder() .alarmNames(alarmName) .build(); cw.deleteAlarms(request); System.out.printf("Successfully deleted alarm %s", alarmName); } catch (CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
전체 예제를
추가 정보
-
PutMetricAlarmAmazon CloudWatchAPI 레퍼런스에서
-
DescribeAlarmsAmazon CloudWatchAPI 레퍼런스에서
-
DeleteAlarmsAmazon CloudWatchAPI 레퍼런스에서