Error Reporting 會匯總執行中的雲端服務所產生的錯誤。這些錯誤是透過 Error Reporting API 回報,或是 Error Reporting 檢查記錄項目時,推斷出常見的文字模式 (例如堆疊追蹤) 為錯誤。錯誤報告會依據錯誤的起因,將同類型的錯誤歸類到同一個組別中。
系統會自動啟用 Error Reporting。
Error Reporting 每小時最多會取樣 1,000 個錯誤。達到這個上限後,系統會顯示估計值。如果收到過多事件,Error Reporting 每小時最多會取樣 100 個錯誤,並繼續推斷計數。
Error Reporting 分析記錄檔項目時
Error Reporting 是以 Cloud Logging 為基礎建構的全球服務,可在符合下列所有條件時分析記錄檔項目:
- Assured Workloads 已停用。詳情請參閱「Assured Workloads 總覽」。
- 儲存記錄項目的所有記錄 bucket 均已停用客戶自行管理的加密金鑰 (CMEK)。Error Reporting 無法將記錄項目儲存在已啟用 CMEK 的記錄值區中。如要瞭解如何判斷記錄儲存空間的 CMEK 設定,請參閱驗證金鑰啟用狀態。
- 記錄檔 bucket 符合下列其中一項條件:
- 記錄 bucket 會儲存在記錄項目來源的專案中。
- 記錄項目已轉送至專案,然後該專案將這些記錄項目儲存在其擁有的記錄 bucket 中。
錯誤分類方式
Error Reporting 評估記錄項目時,會忽略符合下列條件的記錄項目:
- 在 App Engine 標準環境中,嚴重性低於
ERROR
的錯誤記錄會被略過。 - 不是由使用者所擁有的堆疊框架會被略過 (例如:屬於公開程式庫的錯誤)。
- 以序列的單一發生情況取代任何一個或多個堆疊框架的重複序列。
- 移除編譯器引進的方法與符號。
接著,Error Reporting 會依據下列規則將錯誤分組:
- 如果例外狀況具有相同的例外狀況與相似的堆疊,就會分為一組。
- 系統會略過通常與例外狀況發生來源位置不相關的堆疊追蹤。
- 如果這些錯誤由相同記錄項目建立、(
reportLocation
) 回報的來源位置大略相同,則不含例外狀況堆疊的錯誤會分為一組。
具體來說,系統會依下列順序套用分組規則:
錯誤類型 | 分組依據 |
---|---|
因環境中一般問題所造成的錯誤。
例如 App Engine 特定問題: com.google.apphosting.runtime.HardDeadlineExceededError com.google.appengine.api.datastore.DatastoreTimeoutException Java 問題: java.util.concurrent.CancellationException |
依例外狀況類型分組。 |
含有堆疊追蹤的錯誤。以巢狀結構的例外狀況為例,系統會考慮結構最內層的例外狀況。 例如: runtime error: index out of range package1.func1() file1:20 package2.func2() file2:33 |
依照例外狀況類型與前 5 層最外層的框架分組。 |
不含堆疊追蹤的錯誤,但具有訊息。
例如: runtime error: index out of range func1() |
依訊息和函式名稱 (如有) 分組。系統僅考慮訊息的前 3 個文字符記。在左側範例中,這些符記為 runtime 、error 和 index 。 |
資料的地區性
如果您為資料駐留或影響層級 4 (IL4) 需求設定保證工作負載,系統會 Google Cloud 自動停用 Google Cloud 錯誤報告。
在 Cloud Logging 中,您可以將記錄檔轉送至特定位置,藉此將記錄檔設為區域性。在「錯誤群組」頁面中,Error Reporting 會根據含有記錄項目的記錄儲存空間區域,整理並顯示錯誤群組。舉例來說,us-central-1
下列出的錯誤群組只包含 us-central-1
中記錄檔值區的錯誤記錄。全域錯誤群組只會包含 global
地區記錄檔值區中的錯誤記錄。
如要篩選「錯誤群組」頁面顯示的錯誤群組區域,請從「區域」選單中選取值。這個選單的預設值為 global
。