錯誤報告總覽

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()

在本範例中,系統會考量下列權杖:runtimeerrorindex

依訊息和函式名稱 (如有) 分組。系統僅考慮訊息的前三個文字符記。

資料的地區性

如果您為資料落地或影響層級 4 (IL4) 需求設定 Assured Workloads,系統會 Google Cloud 自動停用 Error Reporting。

在 Cloud Logging 中,您可以將記錄檔傳送至特定位置,藉此將記錄檔區域化。在「錯誤群組」頁面中,Error Reporting 會根據含有記錄項目的記錄檔 bucket 區域,整理並顯示錯誤群組。舉例來說,us-central1 下列的錯誤群組只包含 us-central1 中記錄檔 bucket 的錯誤記錄。全域錯誤群組只會包含 global 區域記錄檔 bucket 中的錯誤記錄。

如要篩選「錯誤群組」頁面顯示的錯誤群組區域,請從「區域」選單中選取值。這個選單的預設值為 global

「錯誤群組」頁面上的「區域」選單。

後續步驟