在警示中使用 PromQL - Amazon CloudWatch

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

在警示中使用 PromQL

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

如需警示概念的資訊,請參閱 概念

如需警示資料查詢的資訊,請參閱 警示資料查詢

如需警示動作的相關資訊,請參閱 警示動作

如需警示限制的相關資訊,請參閱 限制

建立 PromQL 警示

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

從主控台建立 PromQL 警示
  1. 開啟 CloudWatch 主控台

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

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

  4. 選擇選取指標,然後選擇 PromQL 標籤。

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

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

  7. 設定警示動作,例如 Amazon SNS 通知。

  8. 輸入警示的名稱和描述,然後選擇建立警示

您也可以在執行傳回單一時間序列的查詢在 Query Studio 中執行 PromQL 查詢 (預覽)之後,直接從 建立 PromQL 警示。

使用 PromQL 建立 CloudWatch 警示進行異常偵測

您可以建立 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 警示

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

如需使用 PromQL 建置異常偵測頻帶的詳細資訊,請參閱 使用 PromQL 進行異常偵測