排解快訊政策問題

本頁說明部分快訊政策可能無法如預期運作的原因,並提供解決方法。

如要瞭解可能影響警告政策的變數 (例如選擇重新測試時間範圍),請參閱「以指標為基準的警告政策行為」。

磁碟使用率政策產生非預期的快訊

您已建立警告政策,監控系統中磁碟的「已用」容量。這項政策會監控指標 agent.googleapis.com/disk/percent_used。您希望只有在任何實體磁碟的使用率超過條件中設定的門檻時,才會收到通知。不過,這項政策會在每個實體磁碟的磁碟使用率低於門檻時發出警告。

這些政策的警報不符預期,已知原因是不會限制監控實體磁碟的條件。這些政策會監控所有磁碟,包括迴路裝置等虛擬磁碟。如果虛擬磁碟的建構方式導致使用率達到 100%,系統就會為該政策建立快訊。

舉例來說,請參考下列 Linux df 指令的輸出內容,其中顯示一個系統上已掛接檔案系統的可用磁碟空間:

$ df
/dev/root     9983232  2337708  7629140   24%  /
devtmpfs      2524080        0  2524080    0%  /dev
tmpfs         2528080        0  2528080    0%  /dev/shm
...
/dev/sda15     106858     3934   102924    4%  /boot/efi
/dev/loop0      56704    56704        0  100%  /snap/core18/1885
/dev/loop1     129536   129536        0  100%  /snap/google-cloud-sdk/150
...

對於這個系統,磁碟使用率警告政策應設定為篩除迴路裝置 /dev/loop0 和 /dev/loop1 的時間序列。舉例來說,您可以新增 device !=~ ^/dev/loop.* 篩選器,排除 device 標籤不符合 ^/dev/loop.* 規則運算式的所有時間序列。

異常快訊的常見原因

您建立了快訊政策,但該政策似乎過早或錯誤地建立快訊。

您可能會收到看似不正確的快訊通知,原因如下:

  • 如果資料有缺漏,尤其是針對設有指標缺漏或「小於」門檻條件的警告政策,系統可能會建立看似異常的警告。有時警示不會顯示資料缺漏,有時資料缺漏會自動修正:

    • 舉例來說,圖表可能不會顯示間隙,因為系統會插補遺漏資料的值。即使缺少幾分鐘的資料,圖表也會連線遺失的點,以維持視覺上的連續性。基礎資料中的這類缺口可能足以讓警告政策建立警告。

    • 以記錄為準的指標中的資料點可能會延遲抵達並回填,最多可回溯 10 分鐘。回填行為可有效修正缺口;資料最終抵達時,缺口就會填補。因此,您可能無法再看到記錄指標的缺口,但警告政策可能已因此建立警告。

  • 系統會即時評估指標缺席和「小於」閾值條件,查詢延遲時間很短。條件狀態可能會在評估時間和 Monitoring 顯示相應快訊的時間之間變更。

  • 如果設定條件,針對單一指標建立快訊,可能會導致快訊過早或不正確。如要避免這種情況,請將條件的重新測試時間範圍設為指標取樣率的兩倍以上,確保系統在建立快訊前會驗證多項測量結果。

    舉例來說,如果指標每 60 秒取樣一次,請將重新測試時間範圍設為至少 3 分鐘。如果將重新測試時間範圍設為「最近的值」(或等同於 0 秒),單一測量結果就可能觸發警報。

  • 編輯警告政策的條件後,變更可能需要幾分鐘才會全面套用到警告基礎架構。在這段時間範圍內,您可能會收到符合原始警告政策條件的警告通知。

  • 時序資料送達後,最多可能需要一分鐘,資料才會傳播到整個快訊基礎架構。在此程序中,即使時間序列資料尚未傳播至時間序列圖表,警告政策仍可能評估條件是否符合。因此,即使圖表未顯示符合條件,你仍可能會收到通知。為降低發生這種情況的可能性,請使用至少五分鐘的校正週期。

  • 將「App Hub」標籤從 metadata.system_labels.apphub_host_project_id 重新命名為 metadata.system_labels.apphub_application_container,可能會導致系統產生一些新的快訊,且部分未解決的快訊不會關閉。

    您無需採取任何行動。如果資料停止傳送,系統就會在自動關閉時間到期後,自動關閉快訊。詳情請參閱「部分指標資料」。

資料停止傳送時,系統不會關閉快訊

請按照「部分指標資料」一文中的指引,設定警告政策,在資料停止傳送時關閉警告。在某些情況下,資料會停止傳送,但系統不會自動關閉開啟的快訊。

如果警告政策監控的基礎資源包含 metadata.system_labels.state 標籤,且該政策不是以監控查詢語言編寫,則監控服務可以判斷資源的狀態。如果資源狀態已知為已停用,則當資料停止傳送時,監控服務不會自動關閉快訊。不過,您可以手動關閉這些警示。

發生權限錯誤,因此無法查看快訊詳細資料

前往 Google Cloud 控制台的「快訊」頁面,然後選取要查看的快訊。您預期會開啟詳細資料頁面。不過,詳細資料頁面無法開啟,且顯示「Permission denied」訊息。

如要查看所有快訊詳細資料 (指標資料除外),請確認您具備「Monitoring Cloud Console Incident Viewer」(roles/monitoring.cloudConsoleIncidentViewer) 和「Stackdriver Accounts Viewer」(roles/stackdriver.accounts.viewer) 的 Identity and Access Management (IAM) 角色。

如要查看所有快訊詳細資料 (包括指標資料),並確認您有權確認或關閉快訊,請確認您具備 Monitoring 檢視者 (roles/monitoring.viewer) 和 Monitoring Cloud Console 事件編輯者 (roles/monitoring.cloudConsoleIncidentEditor) 的 IAM 角色。

自訂角色無法授予查看快訊詳細資料所需的權限。

符合條件時未建立快訊

您建立的警告政策包含一個條件。警告政策的圖表顯示受監控的資料違反條件,但您未收到通知,且系統未建立警告。

如果符合警告政策條件後,符合下列任一條件,則 Monitoring 不會開啟警告。

  • 警告政策已延後。
  • 警告政策已停用。
  • 警告政策可同時開啟的警告數量已達上限。
  • 系統已知警告政策監控的資源已停用。如果資源包含 metadata.system_labels.state 標籤,且警告政策不是以 Monitoring Query Language 編寫,則 Monitoring 可以判斷資源的狀態。

警告詳細資料清單列出錯誤專案

您會收到通知,且條件摘要會列出建立快訊的Google Cloud 專案,也就是列出範圍界定專案。不過,您預期快訊會列出 Google Cloud 專案的名稱,該專案儲存了導致 Monitoring 建立快訊的時間序列。

警告政策條件中指定的匯總選項,會決定通知中參照的 Google Cloud 專案:

  • 如果匯總選項會排除儲存專案 ID 的標籤,快訊資訊就會列出限定範圍專案。舉例來說,如果您只依區域分組資料,分組後系統會移除儲存專案 ID 的標籤。

  • 如果匯總選項保留儲存專案 ID 的標籤,快訊通知就會包含 Google Cloud 專案名稱,該專案會儲存導致快訊發生的時間序列。如要保留專案 ID 標籤,請在分組欄位中加入標籤 project_id,或不要將時間序列分組。

無法手動關閉快訊

您收到系統警報通知。前往快訊詳細資料頁面,然後按一下「關閉快訊」。您預期系統會關閉快訊,但卻收到以下錯誤訊息:

Unable to close alert with active conditions.

只有在最近的快訊期間沒有任何觀測結果時,您才能關閉快訊。警告週期通常預設為 5 分鐘,可做為警告政策條件的一部分,且可設定。先前的錯誤訊息指出,系統在快訊期間內收到資料。

如果發生內部錯誤,導致無法關閉快訊,就會出現下列錯誤訊息:

Unable to close alert. Please try again in a few minutes.

如果看到先前的錯誤訊息,可以重試關閉作業,或讓 Monitoring 自動關閉快訊。

詳情請參閱「管理快訊」。

多條件政策會建立多個通知

您建立的警告政策包含多個條件,且您使用邏輯 AND 連結這些條件。您預期在符合所有條件時收到一則通知,並建立一項快訊。不過,您收到多則通知,且看到系統建立多則快訊。

監控功能會針對導致條件成立的每個時間序列傳送通知並建立快訊。因此,如果快訊政策有多個條件,當每個時間序列都符合合併條件時,您可能會收到一則通知和快訊。

舉例來說,假設您有一項警告政策包含兩個條件,每個條件會監控 3 個時間序列。只有在同時符合這兩項條件時,政策才會傳送通知。符合政策條件時,您可能會收到 2 則 (每個條件都符合一個時間序列) 到 6 則 (每個條件都符合所有時間序列) 通知和快訊。

您無法設定 Monitoring 建立單一快訊並傳送單一通知。

詳情請參閱「監控功能傳送通知及建立快訊的時機」。

指標標籤的變數值為空值

您建立警告政策,並在說明文件部分新增指標標籤的變數。您預期通知會顯示變數參照的標籤值。不過,變數的值會設為 null。

如要解決這個問題,請嘗試下列做法:

  • 確認警告政策的匯總設定會保留您想顯示的標籤。

    舉例來說,假設您建立的警告政策會監控 VM 執行個體寫入的磁碟位元組。您希望說明文件列出導致通知的裝置,因此在說明文件欄位中新增 device: ${metric.label.device}。

    此外,您也必須確認匯總設定會保留 device 標籤的值。如要保留這個標籤,請將匯總函式設為 none,或確認分組選項包含 device。

  • 確認變數的語法和適用性。如需語法資訊,請參閱「使用使用者定義的註解標註通知」。

    舉例來說,變數 log.extracted_label.KEY 僅支援以記錄檔為準的快訊政策。即使警告政策監控的是記錄指標,這個變數一律會顯示為 null。

變更指標定義後,系統不會提供新資料

您變更了使用者定義指標的定義,例如修改記錄指標中使用的篩選器,但警告政策未反映您對指標定義所做的變更。

如要解決這個問題,請編輯政策的顯示名稱,強制更新警告政策。

API 中缺少指標,因此無法建立警告政策

您最近建立了指標,然後嘗試在 Cloud Monitoring API 中建立警告政策時,參考了該指標。不過,API 指令會失敗,並顯示下列錯誤:

Error 404: Cannot find metric(s) that match type = "METRIC_NAME".
If a metric was created recently, it could take up to 10 minutes to become
available. Please try again soon.

如要解決這個問題,請等待至少十分鐘,然後重新提交 API 要求。

警告政策圖表未顯示門檻違規事項

您收到通知,指出系統已針對快訊政策開啟快訊。不過,當您前往政策的詳細資料頁面時,圖表並未顯示違反門檻。

如要解決這個問題,請縮短圖表的時間範圍。如要縮短時間範圍,請使用工具列中的時間範圍選取器,或在圖表上以指標醒目顯示時間範圍。

圖表解析度有限,可能無法顯示某些時間範圍的所有測量結果。