使用 PromQL 查詢建立警示 - Amazon CloudWatch

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

使用 PromQL 查詢建立警示

您可以建立 CloudWatch 警示,該警示使用 PromQL 即時查詢來監控透過 CloudWatch OTLP 端點擷取的指標。查詢傳回的所有相符時間序列都視為違規,警示會將每個違規時間序列追蹤為貢獻者。如需 PromQL 警示如何運作的詳細資訊,請參閱 PromQL 警示

使用 建立 PromQL 警示 AWS 管理主控台

此範例說明如何建立警示來監控指標,並在其值低於 20 時提醒您。

建立 PromQL 警示
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

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

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

  4. 為指標類型選擇 PromQL

  5. 編輯器模式中,輸入 PromQL 查詢:

    my_gauge_metric < 20
  6. Conditions (條件) 下,指定以下內容:

    • 針對評估間隔,選擇 1 minute,以定義 PromQL 查詢的評估頻率。

    • 對於待定期間,輸入 120,在進入 ALARM 狀態之前,參與者必須違反的持續時間,以秒為單位。

    • 對於復原期間,輸入 300,在進入 OK 狀態之前,參與者不得違反持續時間,以秒為單位。

  7. 視需要設定通知和動作。

  8. 輸入警示的名稱和說明。

  9. 選擇下一步

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

建立 PromQL 警示 (AWS CLI)

使用 PutMetricAlarm API 動作來建立 PromQL 警示。

範例建立 PromQL 警示,在指標低於 20 時觸發
aws cloudwatch put-metric-alarm \ --alarm-name MyPromQLAlarm \ --evaluation-criteria '{"PromQLCriteria":{"Query":"my_gauge_metric < 20"}}' \ --evaluation-interval 60
範例建立具有擱置期間的 PromQL 警示

此警示會等待 300 秒 (5 分鐘) 再轉換為 ALARM 狀態,並等待 600 秒 (10 分鐘) 再復原。

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
範例使用 SNS 通知動作建立 PromQL 警示
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

從 Query Studio 建立 PromQL 警示

此範例示範如何從 Query Studio 建立 PromQL 警示,在服務的平均 HTTP 請求持續時間超過 500 毫秒時提醒您。

與閾值設定為個別步驟的標準 CloudWatch 警示不同,PromQL 警示會將警示條件 (閾值) 定義為查詢本身的一部分。例如,比較運算子 (>) 和閾值 (0.5) 會直接內嵌在 PromQL 表達式中。

從 Query Studio 建立 PromQL 警示
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 指標下方的導覽窗格中,選擇查詢 Studio (預覽)

  3. 從查詢語言下拉式功能表中選取 PromQL

  4. 使用下列其中一種模式建置查詢:

    • 建置器模式中,從指標欄位選取指標名稱 (例如,http.server.request.duration)。視需要新增標籤篩選條件 (例如 @resource.service.name = my-api)。若要定義警示閾值,請選取基本操作 (例如,>),然後輸入數字 (例如,0.5)。

    • 程式碼模式中,直接輸入 PromQL 表達式,例如:

      histogram_avg({"http.server.request.duration", "@resource.service.name"="my-api"}) > 0.5
  5. 選擇執行以執行查詢,並確認它傳回預期的結果。

  6. 從動作功能表中選擇建立警示

  7. 系統會將您重新導向至預先填入 PromQL 查詢的 CloudWatch 警示建立頁面。

  8. Conditions (條件) 下,指定以下內容:

    • 針對評估間隔,選擇 1 minute,以定義 PromQL 查詢的評估頻率。

    • 對於待定期間,輸入 60,查詢在進入 ALARM 狀態之前必須違反的持續時間,以秒為單位。這表示延遲必須超過閾值至少 60 秒,警示才會觸發。

    • 針對復原期間,輸入 120,在進入 OK 狀態之前,查詢不得違反的持續時間,以秒為單位。這表示延遲必須低於閾值至少 120 秒,警示才會復原。

  9. 視需要設定通知和動作。

  10. 輸入警示的名稱和說明。

  11. 選擇下一步

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

注意

PromQL 查詢必須傳回單一時間序列才能建立警示。如果您的查詢傳回多個時間序列,請在建立警示之前使用彙總函數topk,例如 sumavg或 ,將結果減少為單一序列。