Arbeiten mit CloudWatch Alarmen - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit CloudWatch Alarmen

Alarm erstellen

Um einen Alarm basierend auf einer CloudWatch Metrik zu erstellen, rufen Sie die Methode CloudWatchClientdes putMetricAlarm mit einem auf, der mit den Alarmbedingungen PutMetricAlarmRequest gefüllt ist.

Importe

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;

Code

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Auflisten von Alarmen

Um die von Ihnen erstellten CloudWatch Alarme aufzulisten, rufen Sie die Methode CloudWatchClientdes describeAlarms mit einem aufDescribeAlarmsRequest, mit dem Sie Optionen für das Ergebnis festlegen können.

Importe

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;

Code

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

Die Liste der Alarme kann abgerufen werden, indem MetricAlarms Sie für die aufrufenDescribeAlarmsResponse, die von zurückgegeben wirddescribeAlarms.

Eventuell werden die Ergebnisse seitenweise zurückgegeben. Um den nächsten Stapel Ergebnisse abzurufen, rufen Sie nextToken für das Antwortobjekt auf und verwenden den Tokenwert, um ein neues Anforderungsobjekt zu erstellen. Anschließend rufen Sie die describeAlarms-Methode erneut für die neue Anforderung auf.

Anmerkung

Sie können Alarme für eine bestimmte Metrik auch abrufen, indem CloudWatchClientSie die Methode des verwendendescribeAlarmsForMetric. Sie lässt sich ähnlich wie describeAlarms nutzen.

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Löschen von Alarmen

Um CloudWatch Alarme zu löschen, rufen Sie die Methode CloudWatchClientdes deleteAlarms mit einem auf, der einen oder mehrere Namen von Alarmen DeleteAlarmsRequest enthält, die Sie löschen möchten.

Importe

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;

Code

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Weitere Informationen