CloudWatch 알람 사용 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudWatch 알람 사용

경보 만들기

CloudWatch메트릭을 기반으로 경보를 만들려면 경보 조건이 PutMetricAlarmRequest채워진 상태로 CloudWatchClient's putMetricAlarm 메서드를 호출하십시오.

가져오기

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

에서 전체 예제를 참조하십시오 GitHub.

경보 나열

생성한 CloudWatch 경보를 나열하려면 결과 옵션을 설정하는 데 사용할 수 DescribeAlarmsRequest있는 a를 사용하여 CloudWatchClient's describeAlarms 메서드를 호출하십시오.

가져오기

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

에서 DescribeAlarmsResponse반환한 를 호출하여 경보 목록을 MetricAlarms 확인할 수 있습니다. describeAlarms

결과를 페이징할 수 있습니다. 다음 결과 배치를 검색하려면 응답 객체에서 nextToken를 호출하고 토큰 값을 사용하여 새 요청 객체를 빌드합니다. 그런 다음 새 요청을 사용해 다시 describeAlarms 메서드를 호출합니다.

참고

CloudWatchClient's describeAlarmsForMetric 메서드를 사용하여 특정 지표에 대한 경보를 검색할 수도 있습니다. 이 메서드의 용도는 describeAlarms와 비슷합니다.

전체 예제를 참조하십시오. GitHub

경보 삭제

경보를 삭제하려면 삭제하려는 CloudWatch 경보 이름을 하나 이상 DeleteAlarmsRequest포함하는 a를 사용하여 CloudWatchClient's deleteAlarms 메서드를 호출합니다.

가져오기

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

전체 예제를 참조하십시오. GitHub

추가 정보