為什麼我的 CloudWatch 警示處於 INSUFFICIENT_DATA 的狀態?

1 分的閱讀內容
0

我的 Amazon CloudWatch 警示處於 INSUFFICIENT_DATA 的狀態。我怎樣才能找出造成此情況的原因?

簡短描述

INSUFFICIENT_DATA 狀態可以指示下列任何一項:

  • Amazon CloudWatch 警示剛剛開始。
  • 無法使用指標。
  • 指標參數 (例如命名空間、指標名稱或維度) 設定錯誤。
  • 沒有足夠的資料供指標判斷警示狀態。

當警示意外處於 INSUFFICIENT_DATA 狀態時,請檢閱下列疑難排解步驟,以瞭解一些最常見原因。

解決方法

一般指標行為

當您建立 CloudWatch 警示時,其第一個狀態預設為 INSUFFICIENT_DATA。它會保持在此狀態,直到完成對受監控之指標的第一次評估為止。通常情況下,警示會在建立後的幾分鐘內從 INSUFFICIENT_DATA 轉換出來。

處於 INSUFFICIENT_DATA 狀態的警示可能會反映指標的正常行為。根據指標推送到 CloudWatch 的方式,有兩種類型:時段驅動和事件驅動。有些服務會定期傳送資料點至其指標。其他服務會在由特定事件觸發時推送指標資料,而且可能有沒有資料點的週期。

Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的預設 CPUUtilization 指標是時段驅動指標的範例。此指標每五分鐘會有一個資料點。但是,如果您停止執行個體,服務就不會將任何資料點推送至執行個體。事件驅動指標的一個範例是 Application Load Balance 的HTTPCode_ELB_5XX_Count 指標。當 ELB 發生 5XX 回應時,Elastic Load Balancing (ELB) 服務會將資料點傳送至此指標。如果在一個週期內沒有 5XX 錯誤,則結果是一個空的週期(而不是零值)。

如果警示正在監控指定週期內沒有資料點的指標,且遺失的資料被視為遺失,則在這些週期警示的狀態為 INSUFFICIENT_DATA。若要強制將警示處於 ALARM 或 OK 狀態,請設定警示如何在沒有資料點的情況下處理這些週期

不正確的 CloudWatch 警示設定

每個指標均由命名空間、指標名稱和最多十個維度定義。擷取資料點時,您必須指定時間戳記 (也可以選擇指定單位)。如果您為其中一個參數提供了不正確的值,則 CloudWatch 會嘗試擷取不存在的指標。結果是一個空的資料集。

**注意:**資料點通常會推送至具有單一單位的指標,但您不需要在建立警示時指定單位。如果您未指定單位,就不會遇到與不正確的單位設定有關的問題。但是,如果指標中的資料點有多個單位,則最佳實務是使用正確的單位。

使用 DescribeAlarms API 取得受監控指標的完整參數清單。您可以將其與 ListMetrics 輸出進行比較。檢查參數是否出現:

  • 拼寫錯誤和不當使用大寫和小寫字母。命名空間、指標名稱和維度金鑰/值是區分大小寫的。
  • 未正確指定或遺失維度。

設定不正確的警示期

您可以設定警示以擷取所需頻率的資料點。但是,如果警示使用的週期短於服務 (或來源) 將資料點傳送至指標的週期,您可能會得到不想要的狀態。若要避免不必要的 INSUFFICIENT_DATA 狀態,最佳實務是將警示的週期設定為等於或大於推送指標資料點的週期。您也可以為警示使用 M out of N 設定。

延遲傳送資料點

視傳送至 CloudWatch 的資料點而定,在監控指標的警示上,您可能會遇到非預期的 INSUFFICIENT_DATA 狀態。

例如,您可能有一個自訂應用程式,可將 EC2 執行個體中部署的軟體中的資料點傳送至自訂指標。若要避免遺失資料,您可以設定應用程式重試失敗的 API 呼叫。但是,由於外部因素 (例如 VPC 設定的修改),執行個體會失去與 CloudWatch 的連線。在此案例中,您的環境仍會產生資料。但是正在發送的資料點失敗,直到外部問題得到解決。

如果您已設定標準警示,警示會每分鐘評估一次指標。在評估期間,警示會從設定的指標取得最新的可用資料點。在沒有連線的此週期,警示仍在評估指標。由於資料點未成功傳送至 CloudWatch,因此警示無法擷取這些評估週期的任何資料點。這會觸發 INSUFFICIENT_DATA 狀態。

復原連線後,應用程式會傳送積壓的資料點,每個資料點都有自己的時間戳記。由於資料點是在此延遲之後傳送的,因此警示現在可以根據您在其上指定的週期和評估週期擷取最近的資料點。此時,您不會再在指標中看到空白空格,因為資料點現在已儲存在 CloudWatch 中。但是,由於警示已經評估了該時間範圍,因此警示歷史記錄仍然顯示類似於以下內容的消息:

[...]
   "stateValue": "INSUFFICIENT_DATA",
   "stateReason": "Insufficient Data: 2 datapoints were unknown.",
   [...]

如果您不希望警示處於 INSUFFICIENT_DATA 狀態,您可以變更警示處理遺失資料的方式


AWS 官方
AWS 官方已更新 2 年前