

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在警示中使用 PromQL
<a name="CloudWatch-PromQL-Alarms"></a>

您可以建立使用 PromQL 查詢監控指標的 CloudWatch 警示。PromQL 警示會評估 PromQL 表達式，並根據查詢結果觸發警示狀態變更。

如需警示概念的資訊，請參閱 [概念](alarm-concepts.md)。

如需警示資料查詢的資訊，請參閱 [警示資料查詢](alarm-data-queries.md)。

如需警示動作的相關資訊，請參閱 [警示動作](alarm-actions.md)。

如需警示限制的相關資訊，請參閱 [限制](alarm-limits.md)。

## 建立 PromQL 警示
<a name="CloudWatch-PromQL-Alarms-Create"></a>

您可以從 CloudWatch 主控台、 AWS CLI或 CloudWatch API 建立 PromQL 警示。

**從主控台建立 PromQL 警示**

1. 開啟 [CloudWatch 主控台](https://console.aws.amazon.com/cloudwatch/)。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇**選取指標**，然後選擇 **PromQL** 標籤。

1. 輸入您的 PromQL 查詢。查詢必須傳回單一時間序列，警示才能評估。

1. 設定警示條件，包括閾值、評估期間和要警示的資料點。

1. 設定警示動作，例如 Amazon SNS 通知。

1. 輸入警示的名稱和描述，然後選擇**建立警示**。

您也可以在執行傳回單一時間序列的查詢[在 Query Studio 中執行 PromQL 查詢 （預覽）](CloudWatch-PromQL-QueryStudio.md)之後，直接從 建立 PromQL 警示。

## 使用 PromQL 建立 CloudWatch 警示進行異常偵測
<a name="promql_alarm_anomaly_detection"></a>

您可以建立 PromQL 警示，在指標超出統計界限定義的預期範圍時觸發。警示查詢會將上限和下限合併為僅傳回異常資料點的單一表達式。查詢傳回的任何時間序列都視為違規。

下列範例表達式會偵測廣告請求指標在 60 分鐘的時段內何時超過中位數的 3 個標準差：

```
1 * {"app.ads.ad_requests"} > quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m)
    + 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m)
or
1 * {"app.ads.ad_requests"} < clamp_min(
    quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m)
    - 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m),
0)
```

此表達式適用於多個標籤值，因此警示可以追蹤整個機群的異常。每個違規時間序列都會追蹤為個別參與者。如需 PromQL 警示如何評估參與者的詳細資訊，請參閱 [PromQL 警示](alarm-promql.md)。

您可以調整乘數和時間範圍，以符合指標的行為。較高的乘數會產生更寬的邊界，並減少誤報。較長的時段可消除短期尖峰。對於不能有負值的指標， `clamp_min`函數可防止下限變成負值。

如需使用 PromQL 建置異常偵測頻帶的詳細資訊，請參閱 [使用 PromQL 進行異常偵測](CloudWatch_Anomaly_Detection.md#anomaly_detection_promql)。