Uso de alarmas de CloudWatch - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Uso de alarmas de CloudWatch

Crear una alarma

Para crear una alarma basada en una métrica de CloudWatch, llame al método putMetricAlarm de AmazonCloudWatchClient con un objeto PutMetricAlarmRequest en el que se especifiquen las condiciones de la alarma.

Importaciones

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;

Código de

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

Mostrar alarmas

Para mostrar las alarmas de CloudWatch que ha creado, llame al método describeAlarms de AmazonCloudWatchClient con un objeto DescribeAlarmsRequest que puede utilizar para establecer opciones para el resultado.

Importaciones

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;

Código de

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

La lista de alarmas se puede obtener llamando a getMetricAlarms en el objeto DescribeAlarmsResult que devuelve describeAlarms.

Los resultados puede que estén paginados. Para recuperar el siguiente lote de resultados, llame a setNextToken en el objeto de la solicitud original con el valor devuelto del método DescribeAlarmsResult del objeto getNextToken y pase el objeto de la solicitud modificado a otra llamada a describeAlarms.

nota

También puede recuperar alarmas para una métrica específica mediante el método describeAlarmsForMetric de AmazonCloudWatchClient. Su uso es similar a describeAlarms.

Eliminar alarmas

Para eliminar alarmas de CloudWatch, llame al método deleteAlarms de AmazonCloudWatchClient con un objeto DeleteAlarmsRequest que contenga uno o más nombres de alarma que desea eliminar.

Importaciones

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;

Código de

final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); DeleteAlarmsRequest request = new DeleteAlarmsRequest() .withAlarmNames(alarm_name); DeleteAlarmsResult response = cw.deleteAlarms(request);

Más información