本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon CloudWatch 警示
您可以在 Amazon CloudWatch 中建立指標和複合警示。
-
指標警示可監看單一 CloudWatch 指標或基於 CloudWatch 指標的數學表達式結果。警示會根據在數個期間與閾值相關的指標值或表達式值來執行一或多個動作。動作可以是將通知傳送至 Amazon SNS 主題、執行 Amazon EC2 動作或 Amazon EC2 Auto Scaling 動作、在 Amazon Q Developer 操作調查中開始調查,或在 Systems Manager 中建立 OpsItem 或事件。
複合警示包括一個規則表達式,該表達式會考慮您所建立之其他警示的警示狀態。僅在符合規則的所有條件時,複合警示才會進入 ALARM 狀態。複合警示規則表達式中指定的警示可以包括指標警示和其他複合警示。
使用複合警示可以減少警示噪音。您可以建立多個指標警示,也可以建立一個複合警示,並僅針對複合警示設定提醒。例如,僅在所有的基礎指標警示都處於 ALARM 狀態時,複合警示才可能進入 ALARM 狀態。
複合警示可以在變更狀態時傳送 Amazon SNS 通知,並在進入 ALARM 狀態時建立調查、Systems Manager OpsItems 或事件,但無法執行 EC2 動作或 Auto Scaling 動作。
注意
您可以在 AWS 帳戶中建立任意數量的警示。
您可以將警示新增至儀表板,以便監控和接收跨多個區域的 AWS 資源和應用程式的提醒。將警示新增至儀表板後,當警示處於 INSUFFICIENT_DATA
狀態時會變成灰色,當處於 ALARM
狀態時則會變成紅色。處於 OK
狀態的所示警示沒有顏色。
您還可以在 CloudWatch 主控台導覽窗格中,從 Favorites and recents (我的最愛和最近的項目) 選項將最近造訪過的警示加入我的最愛。Favorites and recents (我的最愛和最近的項目) 選項具備我的最愛警示和最近造訪過的警示資料欄。
只有在警示變更狀態時,警示才會叫用動作。此例外狀況適用於針對 Auto Scaling 動作的警示。對於 Auto Scaling 動作,警示維持在新狀態的每一分鐘,警示會持續叫用動作。
鬧鐘可以監看相同帳戶中的指標。如果您在 CloudWatch 主控台中啟用了跨帳戶功能,您也可以建立警示來監看其他 AWS 帳戶中的指標。不支援建立跨帳戶複合警示。支援建立使用數學表達式的跨帳戶警示,除了這個之外,跨帳戶警示不支援 ANOMALY_DETECTION_BAND
、INSIGHT_RULE
,以及 SERVICE_QUOTA
函數。
注意
CloudWatch 不會測試或驗證您指定的動作,也不會偵測因為嘗試叫用不存在的動作而產生的任何 Amazon EC2 Auto Scaling 或 Amazon SNS 錯誤。請確定您的警示動作存在。
指標警示狀態
警示擁有以下可能的狀態:
-
OK
– 指標或表達式在定義的閾值內。 -
ALARM
– 指標或表達式在定義的閾值外。 -
INSUFFICIENT_DATA
– 警示剛開始無法使用指標,或資料不足無法讓指標判斷警示狀態。
評估警示
當您建立警示時,必須指定三種設定讓 CloudWatch 評估何時變更警示狀態:
-
期間是為了建立警示的每個資料點,用來評估指標或表達式的時間長度。它會以秒表示。
-
Evaluation Periods (評估期間) 是判斷警示狀態時所評估的最近期間數或資料點數目。
-
Datapoints to Alarm (要警示的資料點) 是在評估期間,必須違規以導致警示進入
ALARM
狀態的資料點數目。違規的資料點不必連續,但是其必須位於等於 Evaluation Period (評估期間) 的資料點最後數字的範圍內。
對於任何一分鐘或更長的期間,系統會每分鐘評估一次警示,且此評估是以期間和評估期間所定義的時間範圍為依據。舉例來說,如果期間為 5 分鐘 (300 秒) 且評估期間的數量為 1,則在第 5 分鐘結束時,警示將會根據第 1 到第 5 分鐘的資料進行評估。接著,在第 6 分鐘結束時,系統會根據第 2 到第 6 分鐘的資料評估警示。
如果警示期間為 10 秒或 30 秒,則系統會每 10 秒評估一次警示。
下圖中,指標警示的警示閾值已設為三個單位。Evaluation Period (評估期間) 和 Datapoints to Alarm (要警示的資料點) 均為 3。也就是說,當最新三個連續期間中的所有現有資料點都超過閾值時,警示便會移至 ALARM
狀態。在此圖中,這會在第三到五個時段發生。在期間六,值 dips 低於閾值,因此評估其中一個期間不違反,且警示狀態變更為 OK
。在第九個時段,再次達到閾值,但只針對一個期間。因此,該警示狀態會維持 OK
。
當您將 Evaluation Periods (評估期間) 和 Datapoints to Alarm (要警示的資料點) 設為不同值時,您會設定「N 個項目中有 M 個」警示。Datapoints to Alarm (要警示的資料點) 是 ("M"),Evaluation Periods (評估期間) 是 ("N")。評估間隔是評估時段數乘以時段長度。例如,若您設定 1 分鐘內 5 個資料點中有 4 個,則評估間隔為 5 分鐘。若您設定 10 分鐘內 3 個資料點中有 3 個,則評估間隔為 30 分鐘。
注意
如果在建立警示後資料點很快便遺失,並在建立警示之前向 CloudWatch 報告指標,則 CloudWatch 在評估警示時會擷取建立警示前的最新資料點。
警示動作
您可以在警示於 OK、ALARM 和 INSUFFICIENT_DATA 狀態之間變更時,指定其要採取的動作。
您可以針對上述三種狀態的轉換設定大多數動作。「自動擴展」動作除外,這些動作只有在狀態轉換時才會發生,而且如果條件持續數小時或數天,也不會再次執行。您可以利用警示允許多個動作的事實,在超出閾值時傳送電子郵件,然後在違規條件結束時傳送另一封電子郵件。這可協助您驗證擴展或復原動作是否會在預期時觸發,並且如所需正常運作。
以下是支援的警示動作。
透過使用 Amazon Simple Notification Service 主題,通知一個或多個訂閱用戶。訂閱用戶可以是應用程式以及個人。如需 Amazon SNS 的詳細資訊,請參閱「什麼是 Amazon SNS?」。
調用 Lambda 函數。這是您在警示狀態變更時自動執行自訂動作的最簡單方法。
-
以 EC2 指標為基礎的警示也可以執行 EC2 動作,例如停止、終止、重新啟動或復原 EC2 執行個體。如需詳細資訊,請參閱建立警示以停止、終止、重新啟動或復原 EC2 執行個體。
警示也可以執行動作來擴展 Auto Scaling 群組。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 的步進和簡易擴展政策。
-
警示可以在 Systems Manager Ops Center 中建立 OpsItems,或在 AWS Systems Manager Incident Manager 中建立事件。這些動作只有在警示進入 ALARM 狀態時才會執行。如需詳細資訊,請參閱設定 CloudWatch 以從警示建立 OpsItems 和事件建立。
警示可以在進入 ALARM 狀態時開始調查。如需 Amazon Q Developer 操作調查的詳細資訊,請參閱 Amazon Q Developer 操作調查 (預覽)。
Lambda 警示動作
CloudWatch 警示保證 Lambda 函數針對特定狀態變更進行非同步調用,但下列情況除外:
當函數不存在時。
當 CloudWatch 無權叫用 Lambda 函數時。
如果 CloudWatch 無法連線至 Lambda 服務,或訊息因其他原因而遭到拒絕,CloudWatch 會重試,直到呼叫成功為止。Lambda 會將訊息排入佇列,並處理執行重試。如需此執行模型的詳細資訊,包括 Lambda 如何處理錯誤的相關資訊,請參閱《 AWS Lambda 開發人員指南》中的非同步調用。
您可以在相同帳戶或其他帳戶中叫用 Lambda 函數 AWS 。
當您指定警示來調用 Lambda 函數作為警示動作時,您可以選擇指定函數名稱、函數別名或函數的特定版本。
在將 Lambda 函數指定為警示動作時,必須為函數建立資源政策,以允許 CloudWatch 服務主體調用函數。
其中一種方法是使用 AWS CLI,如下列範例所示:
aws lambda add-permission \ --function-name
my-function-name
\ --statement-id AlarmAction \ --action 'lambda:InvokeFunction' \ --principal lambda.alarms.cloudwatch.amazonaws.com \ --source-account111122223333
\ --source-arn arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
或者,您可以建立類似下列其中一個範例的政策,然後將其指派給函數。
下列範例會指定警示所在的帳戶,因此只有該帳戶 (111122223333) 中的警示才能調用函數。
{ "Version": "2012-10-17", "Id": "default", "Statement": [{ "Sid": "AlarmAction", "Effect": "Allow", "Principal": { "Service": "lambda.alarms.cloudwatch.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:444455556666:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "111122223333" } } }] }
下列範例的範圍較窄,只允許指定帳戶中的指定警示調用函數。
{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "AlarmAction", "Effect": "Allow", "Principal": { "Service": "lambda.alarms.cloudwatch.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:
us-east-1
:444455556666
:function:function-name
", "Condition": { "StringEquals": { "AWS:SourceAccount": "111122223333
", "AWS:SourceArn": "arn:aws:cloudwatch:us-east-1:111122223333
:alarm:alarm-name
" } } }] }
不建議建立不指定來源帳戶的政策,因為這類政策容易出現混淆的代理問題。
從 CloudWatch 傳送至 Lambda 的事件物件
當您將 Lambda 函數設定為警示動作時,CloudWatch 會在調用 Lambda 函數時將 JSON 承載傳遞至該函數。此 JSON 承載用作函數的事件物件。您可以從此 JSON 物件中提取資料並在函數中使用它。以下是來自指標警示的事件物件範例。
{ 'source': 'aws.cloudwatch', 'alarmArn': 'arn:aws:cloudwatch:us-east-1:444455556666:alarm:lambda-demo-metric-alarm', 'accountId': '444455556666', 'time': '2023-08-04T12:36:15.490+0000', 'region': 'us-east-1', 'alarmData': { 'alarmName': 'lambda-demo-metric-alarm', 'state': { 'value': 'ALARM', 'reason': 'test', 'timestamp': '2023-08-04T12:36:15.490+0000' }, 'previousState': { 'value': 'INSUFFICIENT_DATA', 'reason': 'Insufficient Data: 5 datapoints were unknown.', 'reasonData': '{"version":"1.0","queryDate":"2023-08-04T12:31:29.591+0000","statistic":"Average","period":60,"recentDatapoints":[],"threshold":5.0,"evaluatedDatapoints":[{"timestamp":"2023-08-04T12:30:00.000+0000"},{"timestamp":"2023-08-04T12:29:00.000+0000"},{"timestamp":"2023-08-04T12:28:00.000+0000"},{"timestamp":"2023-08-04T12:27:00.000+0000"},{"timestamp":"2023-08-04T12:26:00.000+0000"}]}', 'timestamp': '2023-08-04T12:31:29.595+0000' }, 'configuration': { 'description': 'Metric Alarm to test Lambda actions', 'metrics': [ { 'id': '1234e046-06f0-a3da-9534-EXAMPLEe4c', 'metricStat': { 'metric': { 'namespace': 'AWS/Logs', 'name': 'CallCount', 'dimensions': { 'InstanceId': 'i-12345678' } }, 'period': 60, 'stat': 'Average', 'unit': 'Percent' }, 'returnData': True } ] } } }
以下是來自複合警示的事件物件範例。
{ 'source': 'aws.cloudwatch', 'alarmArn': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:SuppressionDemo.Main', 'accountId': '111122223333', 'time': '2023-08-04T12:56:46.138+0000', 'region': 'us-east-1', 'alarmData': { 'alarmName': 'CompositeDemo.Main', 'state': { 'value': 'ALARM', 'reason': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild transitioned to ALARM at Friday 04 August, 2023 12:54:46 UTC', 'reasonData': '{"triggeringAlarms":[{"arn":"arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild","state":{"value":"ALARM","timestamp":"2023-08-04T12:54:46.138+0000"}}]}', 'timestamp': '2023-08-04T12:56:46.138+0000' }, 'previousState': { 'value': 'ALARM', 'reason': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild transitioned to ALARM at Friday 04 August, 2023 12:54:46 UTC', 'reasonData': '{"triggeringAlarms":[{"arn":"arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild","state":{"value":"ALARM","timestamp":"2023-08-04T12:54:46.138+0000"}}]}', 'timestamp': '2023-08-04T12:54:46.138+0000', 'actionsSuppressedBy': 'WaitPeriod', 'actionsSuppressedReason': 'Actions suppressed by WaitPeriod' }, 'configuration': { 'alarmRule': 'ALARM(CompositeDemo.FirstChild) OR ALARM(CompositeDemo.SecondChild)', 'actionsSuppressor': 'CompositeDemo.ActionsSuppressor', 'actionsSuppressorWaitPeriod': 120, 'actionsSuppressorExtensionPeriod': 180 } } }
設定 CloudWatch 警示如何處理遺失資料
有時候,並非每個指標的預期資料點都會報告給 CloudWatch。例如,發生遺失連線情況、伺服器停機或根據設計指標只會間歇性報告資料時。
CloudWatch 可讓您指定評估警示時如何處理遺失的資料點。這可協助您設定警示,從而在適合受監控的資料類型時進入 ALARM
狀態。您可以在資料遺失並不表示有問題時避免誤報。
與每個警示總會是三種狀態中的其中一種相似,每個向 CloudWatch 報告的特定資料點都會是三種類別中的其中一種類別:
-
未違反 (在閾值中)
-
違反 (超出閾值)
-
缺少
針對每種警示,您可以指定 CloudWatch 將遺失的資料點視為以下任何一種項目:
-
notBreaching
– 將遺失的資料點視為「良好」且在閾值內 -
breaching
– 將遺失的資料點視為「不良」且超出閾值 -
ignore
– 維持目前的警示狀態 -
missing
– 如果所有資料點在警示評估範圍內遺失,警示會轉換為 INPOLATENT_DATA。
最佳選擇取決於指標的類型和警示的用途。例如,如果您使用持續報告資料的指標來建立應用程式復原警示,您可能會想要將遺失的資料點視為違規,因為它可能表示發生錯誤。但是,如果指標只在發生錯誤時才會產生資料點 (例如 Amazon DynamoDB 中的 ThrottledRequests
),則建議將遺失資料視為 notBreaching
。預設行為是 missing
。
重要
如果缺少指標資料點,Amazon EC2 指標上設定的警示可以暫時進入 INSUFFICIENT_DATA 狀態。這很少見,但即使 Amazon EC2 執行個體運作良好,指標報告也會中斷時發生。對於 Amazon EC2 指標上設定為停止、終止、重新啟動或復原動作的警示,我們建議您設定這些警示將遺失資料視為 missing
,並僅在處於 ALARM 狀態時觸發這些警示。
為警示選擇最佳選項,可避免不必要且誤導的警示條件變更,也可以更準確指出系統的運作狀態。
重要
即使您在警示處理遺漏資料的方式中選擇了其他選項,在 AWS/DynamoDB
命名空間中評估指標的警示始終會忽略遺漏的資料。如果 AWS/DynamoDB
指標有遺漏資料,則評估該指標的警示將保持其目前狀態。
資料遺失時評估警示狀態的方式
當警示評估是否變更狀態時,CloudWatch 嘗試擷取更高於指定數量的資料點 Evaluation Periods (評估期間)。它會嘗試擷取的資料點數量取決於警示期間的長度,以及使用的是標準解析度指標還是高解析度指標。其嘗試擷取的資料點時間範圍便是評估範圍。
一旦 CloudWatch 擷取這些資料點,便會發生下列情況:
如果沒有資料點在評估範圍遺失,CloudWatch 會根據所收集的最新資料點來評估警示。評估的資料點數目等於警示的 Evaluation Periods (評估期間) 的值。不需要評估範圍內較久遠的額外資料點,且會予以忽略。
如果一些資料點在評估範圍遺失,但從評估範圍成功擷取的現有資料點總數等於或超過該警示的 Evaluation Periods (評估期間),CloudWatch 會根據最新成功擷取的實際資料點來評估警示狀態,包括來自評估範圍內較久遠的必要額外資料點。在這種情況下,您不需要設定如何處理資料遺失的數值並可忽略。
如果一些資料點在評估範圍遺失,並且實際資料點所擷取的數量低於警示的 Evaluation Periods (評估期間) 的數量,CloudWatch 會以您指定如何處理資料遺失的結果填入遺失的資料點,然後評估警示。不過,所有在評估範圍中實際資料點都包含在評估內。CloudWatch 盡可能減少使用遺失的資料點。
注意
此行為的特定案例是,CloudWatch 警示可能會在指標已停止流動後的一段時間內,重複重新評估上一組資料點。此重新評估可能會導致警示變更狀態和重新執行動作 (如果在指標串流停止前便已立即變更狀態的話)。為了減少這種行為,請使用較短的期間。
下表說明範例警示評估行為。在第一個表格,Datapoints to Alarm (資料點到警示) 和 Evaluation Periods (評估期間) 均為 3。當評估警示時,CloudWatch 會擷取 5 個最新的資料點,這是為了避免遺失最近 3 個資料點當中的一部分。5 是警示的評估範圍。
第 1 欄顯示了 5 個最新的資料點,因為評估範圍為 5。這些資料點會與右側的資料點一起顯示。0 是未違反的資料點、X 是違反的資料點,以及 - 是遺失的資料點。
欄 2 顯示遺失多少必要的 3 個資料點。即使最近 5 個資料點已完成評估,只需要 3 (Evaluation Periods (評估期間) 的設定) 個便可以評估警示狀態。欄 2 中資料點的數量,是必須使用如何處理遺失資料設定「填入」的資料點數量。
在 3-6 欄中,欄標題是如何處理遺失資料的可能值。這些欄位中的列會顯示針對處理遺失資料的每種可能方式設定的警示狀態。
資料點 | 必須填充的資料點數 | 缺少 | IGNORE | BREACHING | NOT BREACHING |
---|---|---|---|---|---|
0 - X - X |
0 |
|
|
|
|
- - - - 0 |
2 |
|
|
|
|
- - - - - |
3 |
|
保留目前狀態 |
|
|
0 X X - X |
0 |
|
|
|
|
- - X - - |
2 |
|
保留目前狀態 |
|
|
在前一個表格的第二列中,該警示會保持在 OK
,即使將遺失資料都視為違規也一樣,因為一個現有的資料點沒有違規,並且它是隨著兩個視為違規的遺失資料點評估的。下一次評估此警示時,若仍然遺失資料,它便會進入 ALARM
,因為未違反的資料點將不再於評估範圍內。
第三列 (最近五個資料點全部遺失) 說明了如何處理遺失資料的各種設定會如何影響警示狀態。如果遺失的資料點被視為違規,則警示會進入 ALARM 狀態,而如果它們被視為未違規,則警報會進入 OK 狀態。如果忽略遺失的資料點,警示會保留遺失資料點之前的目前狀態。如果遺失的資料點被視為遺失,則警示沒有足夠的最新實際資料來進行評估,並且會進入 INSUFFICIENT_DATA。
在第四列,警示進入 ALARM
狀態,因為當警示的最近三個資料點違規時,警示的 Evaluation Periods (評估期間) 和 Datapoints to Alarm (資料點到警示) 均設為 3。於此狀況下,遺失資料點會予以忽略,且無須如何評估遺失資料的設定,因為有 3 個實際資料點要評估。
第 5 列代表警示評估的特殊情況,稱為過早警示狀態。如需詳細資訊,請參閱避免過早轉換到警示狀態。
在下一個表格中,Period (期間) 會再次設為 5 分鐘,Datapoints to Alarm (要警示的資料點) 為 2,而 Evaluation Periods (評估期間) 則為 3。這是一個 2 來自 3、M 來自 N 警示。
評估範圍為 5。這是已擷取且可以在遺失某些資料點時使用的最近資料點數量上限。
資料點 | # 遺失資料點 | MISSING | IGNORE | BREACHING | NOT BREACHING |
---|---|---|---|---|---|
0 - X - X |
0 |
|
|
|
|
0 0 X 0 X |
0 |
|
|
|
|
0 - X - - |
1 |
|
|
|
|
- - - - 0 |
2 |
|
|
|
|
- - - - X |
2 |
|
保留目前狀態 |
|
|
在第 1 列和第 2 列中,警示始終處於 ARMARM 狀態,因為 3 個最新的資料點中有 2 個違規。在第 2 列中,不需要評估範圍中的兩個最舊的資料點,因為 3 個最新的資料點都不會遺失,因此會忽略這兩個較舊的資料點。
在第 3 列和第 4 列中,只有當遺失資料被視為違規時,警示才會進入 ALARM 狀態,在這種情況下,兩個最近的遺失資料點都會被視為違規。在第 4 列,這兩個被視為違規的遺失資料點提供兩個必要違規的資料點以觸發 ALARM 狀態。
第 5 列代表警示評估的特殊情況,稱為過早警示狀態。如需詳細資訊,請參閱下一節。
避免過早轉換到警示狀態
CloudWatch 警示評估包括嘗試避免錯誤警示的邏輯,當資料間歇時,警示會提前進入 ALARM 狀態。前一節表格中第 5 列顯示的範例說明了此邏輯。在這些資料列中,以及在下列範例中,Evaluation Periods (評估期間) 是 3,而評估範圍是 5 個資料點。Datapoints to Alarm (要警示的資料點) 是 3,除了 N 個例子中的 M 之外,其中 Datapoints to Alarm (要警示的資料點) 是 2。
假設警示的最新資料是 - - - - X
,其中有四個遺失的資料點,然後有一個作為最新資料點的違規資料點。由於下一個資料點可能是未違反,因此當資料為 - - - - X
或 - - - X -
且 Datapoints to Alarm (要警示的資料點) 為 3 時,警示不會立即進入 ARMARM 狀態。透過這種方式,當下一個資料點沒有違反時,可避免誤判,並導致資料成為 - - - X O
或 - - X - O
。
但是,如果最新幾個資料點是 - - X - -
,即使遺失的資料點被視為遺失,警示也會進入 ARMARM 狀態。這是因為警示旨在於 Evaluation Periods (評估期間) 最舊的可用違反資料點數目至少與 Datapoints to Alarm (要警示的資料點) 的值一樣陳舊並且所有其他最新的資料點違規或遺失時,始終能進入 ALARM 狀態。在這種情況下,即使可用的資料點總數小於 M (Datapoints to Alarm (要警示的資料點)),則警示會進入 ALARM 狀態。
此警示邏輯也適用於 N 個中的 M 個警報。如果評估範圍期間最舊的違規資料點至少與 Datapoints to Alarm (要警示的資料點) 同樣陳舊,並且所有最新的資料點均已違規或遺失,則無論 M (Datapoints to Alarm (要警示的資料點)) 的值為何,警示會進入 ALARM 狀態。
高解析度警示
如果您在高解析度指標設定警示,您可以指定期間為 10 秒或 30 秒的高解析度警示,或者設定期間為 60 秒的任何倍數的定期警示。高解析度警示費用更高。如需高解析度指標的詳細資訊,請參閱 發佈自訂指標。
數學運算式的警示
您可以在根據一個或多個 CloudWatch 指標的數學表達式所產生的結果上建立警示。用於警示的數學表達式最多可包含 10 個指標。每個指標都必須使用相同的期間。
針對以數學表達式為基礎的警示,您可以指定您希望 CloudWatch 處理遺失資料點的方式。在此情況下,如果數學表達式未傳回該資料點的值,會將該資料點視為遺失。
以數學表達式為基礎的警示無法執行 Amazon EC2 動作。
如需指標數學表達式和語法的詳細資訊,請參閱搭配 CloudWatch 指標使用數學表達式。
以百分位數為基礎的 CloudWatch 警示和低資料範例
當您設定一個百分位數作為警示的統計資料,您可以指定當沒有足夠的資料可進行良好的統計評估時該進行的動作。您可以選擇無論如何讓警示評估統計資料,並盡可能變更警示狀態。或者,您可以在範例大小為低時讓警示忽略指標,並等待直到有足夠的資料時再進行評估。
對於 0.5 (含) 和 1.00 (含) 之間的百分位數,會在評估期間有少於 10/(1 個百分位數) 資料點時使用此設定。例如,如果對於在 p99 百分位數的警示有少於 1000 個範例,就會使用此設定。對於 0 和 0.5 (不含) 之間的百分位數,會在評估期間有少於 10/(1 個百分位數) 資料點時使用此設定。
CloudWatch 警示的常見功能
下列功能適用於所有 CloudWatch 警示:
-
您可建立的警示數量沒有限制。若要建立或更新警示,您可以使用 CloudWatch 主控台、PutMetricAlarm API 動作或 AWS CLI中的 put-metric-命令。
-
警示名稱只能包含 UTF-8 字元,不能包含 ASCII 控制字元。
-
您可以列出任何或所有目前設定的警示,並使用 CloudWatch 主控台、DescribeAlarms API 動作或 AWS CLI中的 describe-alarms 命令,列出任何特定狀態中的警示。
-
您可以透過使用 DisableAlarmActions 和 EnableAlarmActions API 動作,或是 AWS CLI中的 disable-alarm-actions 和 enable-alarm-actions 命令,停用和啟用警示。
-
您可以透過使用 SetAlarmState API 動作或 AWS CLI中的 set-alarm-state 命令將警示設定為任何狀態,進而測試警示。此臨時狀態變更只持續直到下一個警示比較發生為止。
-
您可以在建立自訂指標之前,為自訂指標建立警示。若要讓警示有效,您必須包含自訂指標的所有維度,除了在警示定義中的指標命名空間和指標名稱。若要執行此操作,您可以使用 PutMetricAlarm API 動作,或 AWS CLI中的 put-metric-alarm 命令。
-
您可以使用 CloudWatch 主控台、DescribeAlarmHistory API 動作,或 AWS CLI中的 describe-alarm-history 命令,查看警示的歷史記錄。CloudWatch 會保留警示歷史記錄 30 天。每個狀態轉換都標示有唯一時間戳記。在極少數情況下,您歷史記錄可能會顯示一個以上的狀態變更通知。時間戳記可讓您確認獨特的狀態變更。
-
您可以在 CloudWatch 主控台導覽窗格中,從 Favorites and recents (我的最愛和最近的項目) 選項將警示加入我的最愛,方法是將滑鼠停留在您想要加入我的最愛的警示上,然後選擇旁邊的星號。
-
警示的評估期間數乘以每個評估期間的長度後,不得超過一天。
注意
某些 AWS 資源在特定情況下不會將指標資料傳送至 CloudWatch。
例如,Amazon EBS 可能不會傳送並未連接到 Amazon EC2 執行個體可用磁碟區的指標資料,因為針對該磁碟區沒有要監控的指標活動。若您有為這類指標設定警示,您可能會注意到其狀態變更為 INSUFFICIENT_DATA
。這可能表示您的資源並未處在作用中,而不一定表示發生問題。您可以指定每個警示要如何處理遺失的資料。如需詳細資訊,請參閱設定 CloudWatch 警示如何處理遺失資料。