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 中。如要瞭解如何判斷記錄檔 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。
