

# Creación de una alarma mediante una consulta PromQL
<a name="Create_PromQL_Alarm"></a>

Puede crear una alarma de CloudWatch que utilice una consulta instantánea PromQL para supervisar las métricas ingeridas a través del punto de conexión OTLP de CloudWatch. Todas las series temporales coincidentes devueltas por la consulta se consideran infractoras, y la alarma registra cada serie temporal infractora como colaborador. Para obtener más información sobre cómo funcionan las alarmas de PromQL, consulte [Alarmas PromQL](alarm-promql.md).

## Creación de una alarma PromQL mediante Consola de administración de AWS
<a name="promql-alarm-create-console"></a>

En este ejemplo, se muestra cómo crear una alarma que supervisa una métrica de un indicador y le avisa cuando su valor cae por debajo de 20.

**Para crear una alarma PromQL**

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Alarms** (Alarmas) y, a continuación, **All Alarms** (Todas las alarmas).

1. Elija **Crear alarma**.

1. Elija **PromQL** como tipo de métrica.

1. En el modo **Editor**, ingrese la consulta PromQL:

   ```
   my_gauge_metric < 20
   ```

1. En **Conditions (Condiciones)**, especifique lo siguiente:
   + En **Intervalo de evaluación**, elija **1 minute**, para definir la frecuencia con la que se evalúa la consulta PromQL.
   + En **Periodo pendiente**, ingrese **120**, la duración, en segundos, durante la cual un colaborador debe estar en incumplimiento antes de pasar al estado ALARM.
   + En **Periodo de recuperación**, ingrese **300**, la duración, en segundos, durante la cual un colaborador debe estar en cumplimiento antes de pasar al estado OK.

1. Configure las notificaciones y las acciones según sea necesario.

1. Añada un nombre y una descripción para la alarma.

1. Elija **Siguiente**.

1. Elija **Crear alarma**.

## Creación de una alarma PromQL (AWS CLI)
<a name="promql-alarm-create-cli"></a>

Utilice la acción de la API [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) para crear una alarma PromQL.

**Example Creación de una alarma PromQL que se active cuando la métrica de un indicador caiga por debajo de 20**  

```
aws cloudwatch put-metric-alarm \
  --alarm-name MyPromQLAlarm \
  --evaluation-criteria '{"PromQLCriteria":{"Query":"my_gauge_metric < 20"}}' \
  --evaluation-interval 60
```

**Example Creación de una alarma PromQL con un periodo pendiente**  
Esta alarma espera 300 segundos (5 minutos) antes de pasar al estado `ALARM` y espera 600 segundos (10 minutos) antes de recuperarse.  

```
aws cloudwatch put-metric-alarm \
  --alarm-name HighLatencyAlarm \
  --evaluation-criteria '{"PromQLCriteria":{"Query":"histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) > 0.5","PendingPeriod":300,"RecoveryPeriod":600}}' \
  --evaluation-interval 60
```

**Example Creación de una alarma PromQL con una acción de notificación de SNS**  

```
aws cloudwatch put-metric-alarm \
  --alarm-name MyPromQLAlarmWithAction \
  --evaluation-criteria '{"PromQLCriteria":{"Query":"my_gauge_metric < 20","PendingPeriod":0,"RecoveryPeriod":0}}' \
  --evaluation-interval 60 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:MyTopic
```

## Creación de una alarma PromQL desde Query Studio
<a name="promql-alarm-create-query-studio"></a>

En este ejemplo se muestra cómo crear una alarma PromQL desde Query Studio que le avise cuando la duración media de la solicitud HTTP de un servicio supere los 500 milisegundos.

A diferencia de las alarmas estándar de CloudWatch, en las que el umbral se configura como un paso independiente, las alarmas PromQL definen la condición de alarma (umbral) como parte de la propia consulta. Por ejemplo, el operador de comparación (`>`) y el valor umbral (`0.5`) están integrados directamente en la expresión PromQL.

**Para crear una alarma PromQL desde Query Studio**

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, debajo de **Metricas**, elija **Query Studio (versión preliminar)**.

1. Seleccione **PromQL** en el menú desplegable de lenguajes de consulta.

1. Cree la consulta usando uno de los siguientes modos:
   + En el modo **Generador**, seleccione un nombre de métrica en el campo **Métrica** (por ejemplo, `http.server.request.duration`). Agregue filtros de etiquetas según sea necesario (por ejemplo, `@resource.service.name` = `my-api`). Para definir el umbral de alarma, seleccione una **Operación básica** (por ejemplo, `>`) e ingrese un **Número** (por ejemplo, `0.5`).
   + En el modo **Código**, ingrese directamente la expresión PromQL, por ejemplo:

     ```
     histogram_avg({"http.server.request.duration", "@resource.service.name"="my-api"}) > 0.5
     ```

1. Elija **Ejecutar** para poner en marcha la consulta y comprobar que devuelva los resultados esperados.

1. En el menú de acciones, seleccione **Crear alarma**.

1. Se le redirigirá a la página de creación de alarmas de CloudWatch con la consulta PromQL rellenada previamente.

1. En **Conditions (Condiciones)**, especifique lo siguiente:
   + En **Intervalo de evaluación**, elija **1 minute**, para definir la frecuencia con la que se evalúa la consulta PromQL.
   + En **Periodo pendiente**, ingrese **60**, la duración, en segundos, durante la cual la consulta debe estar en incumplimiento antes de pasar al estado ALARM. Esto significa que la latencia debe superar el umbral durante al menos 60 segundos antes de que se active la alarma.
   + En **Periodo de recuperación**, ingrese **120**, la duración, en segundos, durante la cual la consulta debe estar en cumplimiento antes de pasar al estado OK. Esto significa que la latencia debe permanecer por debajo del umbral durante al menos 120 segundos antes de que la alarma se recupere.

1. Configure las notificaciones y las acciones según sea necesario.

1. Añada un nombre y una descripción para la alarma.

1. Elija **Siguiente**.

1. Elija **Crear alarma**.

**nota**  
La consulta PromQL debe devolver una sola serie temporal para crear una alarma. Si la consulta devuelve varias series temporales, utilice funciones de agregación como `sum`, `avg` o `topk` para reducir el resultado a una sola serie antes de crear la alarma.