View a markdown version of this page

Configurar una alarma de CloudWatch - AWS Kit Cloud Development Kit (AWS CDK) v2

Esta es la guía para desarrolladores de AWS CDK v2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar una alarma de CloudWatch

Utilice el paquete aws-cloudwatch para configurar las alarmas de Amazon CloudWatch en las métricas de CloudWatch. Puede utilizar métricas predefinidas o crear las suyas propias.

Usar una métrica existente

Muchos módulos de la Biblioteca de constructos de AWS permiten configurar una alarma en una métrica existente, pasando el nombre de la métrica a un método práctico de una instancia de un objeto que tiene métricas. Por ejemplo, dada una cola de Amazon SQS, puede obtener la métrica ApproximateNumberOfMessagesVisible del método metric() de la cola:

ejemplo
TypeScript
const metric = queue.metric("ApproximateNumberOfMessagesVisible");
JavaScript
const metric = queue.metric("ApproximateNumberOfMessagesVisible");
Python
metric = queue.metric("ApproximateNumberOfMessagesVisible")
Java
Metric metric = queue.metric("ApproximateNumberOfMessagesVisible");
C#
var metric = queue.Metric("ApproximateNumberOfMessagesVisible");

Crear su propia métrica

Cree su propia métrica de la siguiente manera: donde el valor del espacio de nombres debe ser algo parecido a AWS/SQS para una cola de Amazon SQS. También debe especificar el nombre y la dimensión de la métrica:

ejemplo
TypeScript
const metric = new cloudwatch.Metric({ namespace: 'MyNamespace', metricName: 'MyMetric', dimensionsMap: { MyDimension: 'MyDimensionValue' } });
JavaScript
const metric = new cloudwatch.Metric({ namespace: 'MyNamespace', metricName: 'MyMetric', dimensionsMap: { MyDimension: 'MyDimensionValue' } });
Python
metric = cloudwatch.Metric( namespace="MyNamespace", metric_name="MyMetric", dimensionsMap=dict(MyDimension="MyDimensionValue") )
Java
Metric metric = Metric.Builder.create() .namespace("MyNamespace") .metricName("MyMetric") .dimensionsMap(java.util.Map.of( // Java 9 or later "MyDimension", "MyDimensionValue")) .build();
C#
var metric = new Metric(this, "Metric", new MetricProps { Namespace = "MyNamespace", MetricName = "MyMetric", Dimensions = new Dictionary<string, object> { { "MyDimension", "MyDimensionValue" } } });

Crear la alarma

Una vez que tenga una métrica, ya sea una existente o una que haya definido, puede crear una alarma. En este ejemplo, la alarma se activa cuando hay más de 100 unidades de la métrica en dos de los últimos tres períodos de evaluación. Puede utilizar comparaciones como el valor inferior al de sus alarmas a través de la propiedad comparisonOperator. Mayor o igual a es el valor predeterminado de AWS CDK, por lo que no necesitamos especificarlo.

ejemplo
TypeScript
const alarm = new cloudwatch.Alarm(this, 'Alarm', { metric: metric, threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2, });
JavaScript
const alarm = new cloudwatch.Alarm(this, 'Alarm', { metric: metric, threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2 });
Python
alarm = cloudwatch.Alarm(self, "Alarm", metric=metric, threshold=100, evaluation_periods=3, datapoints_to_alarm=2 )
Java
import software.amazon.awscdk.services.cloudwatch.Alarm; import software.amazon.awscdk.services.cloudwatch.Metric; Alarm alarm = Alarm.Builder.create(this, "Alarm") .metric(metric) .threshold(100) .evaluationPeriods(3) .datapointsToAlarm(2).build();
C#
var alarm = new Alarm(this, "Alarm", new AlarmProps { Metric = metric, Threshold = 100, EvaluationPeriods = 3, DatapointsToAlarm = 2 });

Una forma alternativa de crear una alarma es usar el método createAlarm() de la métrica, que básicamente tiene las mismas propiedades que el constructo Alarm. No es necesario transmitir la métrica, porque ya la conoce.

ejemplo
TypeScript
metric.createAlarm(this, 'Alarm', { threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2, });
JavaScript
metric.createAlarm(this, 'Alarm', { threshold: 100, evaluationPeriods: 3, datapointsToAlarm: 2, });
Python
metric.create_alarm(self, "Alarm", threshold=100, evaluation_periods=3, datapoints_to_alarm=2 )
Java
metric.createAlarm(this, "Alarm", new CreateAlarmOptions.Builder() .threshold(100) .evaluationPeriods(3) .datapointsToAlarm(2) .build());
C#
metric.CreateAlarm(this, "Alarm", new CreateAlarmOptions { Threshold = 100, EvaluationPeriods = 3, DatapointsToAlarm = 2 });