Error Reporting の概要

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

Error Reporting が自動的に有効になります。

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

Error Reporting がログエントリを分析するタイミング

Error Reporting は Cloud Logging 上に構築されたグローバル サービスであり、次のすべての条件が満たされている場合にログエントリを分析できます。

  • Assured Workloads が無効になっている。詳細については、Assured Workloads の概要をご覧ください。
  • ログエントリを保存するすべてのログバケットで、顧客管理の暗号鍵(CMEK)が無効になっている。ログバケットの CMEK 構成を確認する方法については、鍵の有効化を確認するをご覧ください。
  • ログバケットが次のいずれかを満たしている。
    • ログバケットがログエントリの元のプロジェクトに保存されている。
    • ログエントリがプロジェクトに転送され、そのプロジェクトがそれらのログエントリを、所有するログバケットに保存した。
CMEK が有効になっているログバケットにログエントリを保存している場合でも、Error Reporting を使用できます。ただし、Error Reporting クライアント ライブラリまたは Error Reporting API を使用する必要があります。詳細については、Error Reporting API の概要Error Reporting クライアント ライブラリをご覧ください。

エラーのグループ化方法

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 です。

データのリージョン

データ所在地または影響レベル 4(IL4)の要件に従って Assured Workloads を設定すると、Google Cloud は Error Reporting を自動的に無効にします。

Cloud Logging では、特定のロケーションに転送することで、ログをリージョン化できます。[エラーグループ] ページでは、Error Reporting は、ログエントリを含むログバケットのリージョンに基づいてエラーグループを整理して表示します。Error Reporting はグローバル サービスであるため、エラーグループにはどのリージョンからでもアクセスできます。この動作は構成できません。

次のステップ