本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 PromQL 查詢建立警示
您可以建立 CloudWatch 警示,該警示使用 PromQL 即時查詢來監控透過 CloudWatch OTLP 端點擷取的指標。查詢傳回的所有相符時間序列都視為違規,警示會將每個違規時間序列追蹤為貢獻者。如需 PromQL 警示如何運作的詳細資訊,請參閱 PromQL 警示。
使用 建立 PromQL 警示 AWS 管理主控台
此範例說明如何建立警示來監控指標,並在其值低於 20 時提醒您。
建立 PromQL 警示
透過 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
在導覽窗格中,選擇 Alarms (警示)、All alarms (所有警示)。
-
選擇 Create alarm (建立警示)。
-
為指標類型選擇 PromQL。
-
在編輯器模式中,輸入 PromQL 查詢:
my_gauge_metric < 20 -
在 Conditions (條件) 下,指定以下內容:
-
針對評估間隔,選擇
1 minute,以定義 PromQL 查詢的評估頻率。 -
對於待定期間,輸入
120,在進入 ALARM 狀態之前,參與者必須違反的持續時間,以秒為單位。 -
對於復原期間,輸入
300,在進入 OK 狀態之前,參與者不得違反持續時間,以秒為單位。
-
-
視需要設定通知和動作。
-
輸入警示的名稱和說明。
-
選擇下一步。
-
選擇 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 警示
透過 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
在指標下方的導覽窗格中,選擇查詢 Studio (預覽)。
-
從查詢語言下拉式功能表中選取 PromQL。
-
使用下列其中一種模式建置查詢:
-
在建置器模式中,從指標欄位選取指標名稱 (例如,
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
-
-
選擇執行以執行查詢,並確認它傳回預期的結果。
-
從動作功能表中選擇建立警示。
-
系統會將您重新導向至預先填入 PromQL 查詢的 CloudWatch 警示建立頁面。
-
在 Conditions (條件) 下,指定以下內容:
-
針對評估間隔,選擇
1 minute,以定義 PromQL 查詢的評估頻率。 -
對於待定期間,輸入
60,查詢在進入 ALARM 狀態之前必須違反的持續時間,以秒為單位。這表示延遲必須超過閾值至少 60 秒,警示才會觸發。 -
針對復原期間,輸入
120,在進入 OK 狀態之前,查詢不得違反的持續時間,以秒為單位。這表示延遲必須低於閾值至少 120 秒,警示才會復原。
-
-
視需要設定通知和動作。
-
輸入警示的名稱和說明。
-
選擇下一步。
-
選擇 Create alarm (建立警示)。
注意
PromQL 查詢必須傳回單一時間序列才能建立警示。如果您的查詢傳回多個時間序列,請在建立警示之前使用彙總函數topk,例如 sum、 avg或 ,將結果減少為單一序列。