Error Reporting の概要

Error Reporting は、実行中のクラウド サービスで発生したエラーを集計します。これらのエラーは Error Reporting API によって報告されるか、Error Reporting でログエントリを検査して、スタック トレースなどの一般的なテキスト パターンのエラーだと推測されます。Error Reporting では、根本原因が同じであると考えられるエラーをグループ化します。

取り込まれたユーザーログがこれらのパターンのいずれかに一致すると、Cloud Logging によって Error Reporting が自動的に有効になります。

Error Reporting はグローバル サービスであるため、送信元と宛先の Google Cloud プロジェクトが同じで、顧客管理の暗号鍵(CMEK)が無効になっている global リージョンで Cloud Logging バケットに保存されているログエントリのみ分析できます。ログを別の Google Cloud プロジェクトまたはリージョン バケットにルーティングしているか、CMEK を有効にした場合、Error Reporting はそれらのログのキャプチャと分析を行いません。

Error Reporting は 1 時間あたり最大 1,000 件のエラーを抽出します。 この上限に達すると、表示されるカウントは推定値になります。受信したイベントが多すぎる場合、Error Reporting は 1 時間あたり最大 100 件のエラーを抽出して、カウントの推定を続けます。

エラーのグループ化方法

Error Reporting は、ログエントリを評価する際に、次の状態のログエントリを無視します。

  • App Engine スタンダード環境上で、ERROR より低い重要度でログ記録されたエラーを無視する。
  • ユーザーによって所有されていないスタック フレームを無視する(例: 公開ライブラリに属するもの)。
  • スタック フレームのいずれかの繰り返しシーケンスが、そのシーケンスの 1 回の発生により置き換えられる。
  • コンパイラにより導入された方法やシンボルが削除される。

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 つのリテラル トークンのみが考慮されます。左側の例では、runtimeerrorindex です。

次のステップ