Error Reporting 會依據應用程式錯誤事件的根本原因匯總及分組,協助您找出、排定優先順序及分類雲端服務的問題。錯誤事件代表應用程式錯誤的單一發生次數,並擷取錯誤的時間戳記、執行環境和錯誤訊息。
系統會自動啟用 Error Reporting,並開始偵測錯誤,不需手動設定。這項服務會直接從 Error Reporting API 收集錯誤事件,或掃描記錄檔項目中的堆疊追蹤和常見錯誤模式,推斷出錯誤事件。
為提升效能,Error Reporting 每小時最多會取樣 1,000 個錯誤,並在達到這個門檻時預估計數。如果事件量超出上限,Error Reporting 每小時最多會取樣 100 個錯誤,並繼續推斷顯示的計數。
Error Reporting 分析記錄檔項目時
Error Reporting 是以 Cloud Logging 為基礎建構的全球服務,可分析記錄檔項目,但前提是必須符合下列所有條件:
- Assured Workloads 已停用。詳情請參閱「Assured Workloads 總覽」。
- 客戶自行管理的加密金鑰 (CMEK) 已在儲存記錄檔項目的所有記錄值區中停用。Error Reporting 無法將記錄項目儲存在已啟用 CMEK 的記錄值區中。如要瞭解如何判斷記錄檔 bucket 的 CMEK 設定,請參閱「驗證金鑰啟用狀態」。
- 記錄檔 bucket 符合下列其中一項條件:
- 記錄檔 bucket 儲存在記錄項目來源的專案中。
- 記錄項目已轉送至專案,然後該專案將這些記錄項目儲存在其擁有的記錄檔 bucket 中。
錯誤事件的分組方式
Error Reporting 評估記錄項目以找出錯誤事件時,會忽略下列資料:
- App Engine 標準環境寫入的記錄項目,嚴重程度低於
ERROR。 - 不屬於使用者的堆疊框架,例如屬於公開程式庫的框架。
掃描記錄項目時,Error Reporting 會先進行下列修改,再推斷錯誤事件:
- 以序列的單一發生情況取代任何一個或多個堆疊框架的重複序列。
- 移除編譯器引進的方法與符號。
Error Reporting 會依指定順序套用這些規則,將錯誤事件分組:
| 錯誤事件 | 分組依據 |
|---|---|
| 因環境中一般問題所造成的錯誤事件。
例如 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 |
依照例外狀況類型與前五層最外層的框架分組。 |
| 不含堆疊追蹤的錯誤事件,但具有訊息。
例如: runtime error: index out of range
func1()在本範例中,系統會考量下列權杖: |
依訊息和函式名稱 (如有) 分組。系統僅考慮訊息的前三個文字符記。 |
資料的地區性
如果您為資料落地或影響層級 4 (IL4) 需求設定 Assured Workloads,系統會 Google Cloud 自動停用 Error Reporting。
在 Cloud Logging 中,您可以將記錄檔傳送至特定位置,藉此將記錄檔區域化。在「錯誤群組」頁面中,Error Reporting 會根據含有記錄項目的記錄檔 bucket 區域,整理並顯示錯誤群組。舉例來說,us-central1 下列的錯誤群組只包含 us-central1 中記錄檔 bucket 的錯誤記錄。全域錯誤群組只會包含 global 區域記錄檔 bucket 中的錯誤記錄。
如要篩選「錯誤群組」頁面顯示的錯誤群組區域,請從「區域」選單中選取值。這個選單的預設值為 global。
