排解快訊政策問題

本頁面說明為何某些快訊政策的運作方式可能與預期不同,並提供可能的解決方法。

如要進一步瞭解可能影響警告政策的變數 (例如重測時間窗格選項),請參閱「以指標為基礎的警告政策行為」。

磁碟使用率政策導致意外事件

您建立了快訊政策,用於監控系統中磁碟的「已用」容量。這項政策會監控 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 分鐘的資料。回填行為可有效修正差距,並在資料最終到達時填補差距。因此,如果記錄指標中出現無法再查看的空白,可能會導致警告政策建立事件。

  • 系統會即時評估指標缺失和「小於」閾值條件,但會產生少許查詢延遲。在評估條件與監控中顯示相應事件的時間之間,條件的狀態可能會有所變動。

  • 如果您設定的條件是針對單一指標建立事件,可能會導致事件過早或不正確地產生。為避免這種情況,請將條件的重測時間間隔設為大於指標取樣率兩倍,確保事件發生前需要進行多次測量。

    舉例來說,如果指標每 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 控制台事件檢視器 (roles/monitoring.cloudConsoleIncidentViewer) 和 Stackdriver 帳戶檢視者 (roles/stackdriver.accounts.viewer) 的 Identity and Access Management (IAM) 角色。

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

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

符合條件時未建立事件

您建立的快訊政策包含一個條件。快訊政策的圖表顯示受監控的資料違反條件,但您並未收到通知,也未建立事件。

如果在符合警示政策條件後,任何下列條件為真,Monitoring 就不會開啟事件。

  • 快訊政策已延後
  • 快訊政策已停用。
  • 快訊政策中同時存在的未解決事件數量已達上限
  • 已知快訊政策監控的資源狀態已停用。如果資源包含 metadata.system_labels.state 標籤,且快訊政策並非使用監控查詢語言編寫,監控功能就能判斷資源的狀態。

事件詳細資料列出錯誤的專案

您會收到通知,條件摘要會列出事件建立的Google Cloud 專案,也就是列出範圍設定的專案。不過,您希望事件列出Google Cloud 專案的名稱,該專案會儲存導致監控建立事件的時間序列。

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

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

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

無法手動關閉事件

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

Unable to close incident with active conditions.

只有在最近的警報期間沒有任何觀察資料時,才能關閉事件。快訊期間 (預設值通常為 5 分鐘) 是快訊政策條件中定義的一部分,可進行設定。先前的錯誤訊息表示系統已在快訊期間收到資料。

當內部錯誤導致事件無法關閉時,會發生以下錯誤:

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

看到上述錯誤訊息時,您可以重試關閉作業,或讓監控功能自動關閉事件。

詳情請參閱「管理事件」。

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

您建立了包含多個條件的警告政策,並使用邏輯 AND 彙整這些條件。您預期在符合所有條件時,會收到一則通知並建立一則事件。但您會收到多則通知,並看到系統建立了多個事件。

監控會針對每個導致條件符合的時間序列傳送通知,並建立事件。因此,如果您設定的快訊政策含有多個條件,您可能會針對每個時間序列收到一則通知和事件,而這些時間序列會導致符合結合條件的條件。

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

您無法設定監控功能來建立單一事件並傳送單一通知。

詳情請參閱「每個事件的通知」。

指標標籤的變數為空值

您建立快訊政策,並在說明文件部分新增指標標籤的變數。您預期通知會顯示變數的值,但值設為 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 要求。

快訊政策圖表未顯示門檻違規情形

您收到通知,表示快訊政策中出現事件。 不過,當您前往政策詳細資料頁面時,圖表並未指出違反門檻。

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

圖表的解析度有限,可能不會顯示某些時間範圍的所有評估資料。