Error Reporting の概要

Error Reporting は、アプリケーション エラーイベントを根本原因別に集計してグループ化し、クラウド サービス全体の問題の特定、優先順位付け、トリアージに役立ちます。エラーイベント は、アプリケーション エラーの 1 回の発生を表し、そのタイムスタンプ、実行コンテキスト、エラー メッセージをキャプチャします。

Error Reporting は自動的に有効になり、手動で設定しなくてもエラーの検出を開始します。 Error Reporting API からエラーイベントを直接収集するか、 ログエントリをスキャンしてスタック トレースと一般的なエラー パターンを検出することでエラーイベントを推測します。

パフォーマンスを最適化するため、Error Reporting は 1 時間あたり最大 1,000 件のエラーをサンプリングし、この上限に達するとカウントを推定します。イベントの量が容量を超えると、Error Reporting は 1 時間あたり最大 100 件のエラーをサンプリングし、表示されるカウントの推定を続けます。

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

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

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

エラーイベントのグループ化方法

Error Reporting は、ログエントリを評価してエラーイベントを特定する際に、次のデータを無視します。

  • App Engine スタンダード環境によって書き込まれた、重要度レベルが ERROR より低いログエントリ。
  • ユーザーが所有していないスタック フレーム(公開ライブラリに属するものなど)。

ログエントリがスキャンされると、Error Reporting はエラーイベントを推測する前に次の変更を行います。

  • スタック フレームの繰り返しシーケンスを、そのシーケンスの 1 回の発生に置き換えます。
  • コンパイラにより導入された方法やシンボルを削除します。

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
例外タイプと上位 5 つのフレームによりグループ化。
スタック トレースはないが、メッセージがあるエラーイベント

次に例を示します。

runtime error: index out of range
    func1()

この例では、次のトークンが考慮されます: runtimeerror、および index

メッセージと(存在する場合は)関数名によりグループ化。最初の 3 つのリテラル トークンのみが考慮されます。

データのリージョン

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

Cloud Logging では、ログを特定の場所に転送することで、ログをリージョン化できます。[エラーグループ] ページで、Error Reporting はログエントリを含むログバケットのリージョンに基づいてエラーグループを整理して表示します。たとえば、us-central1 に一覧表示されているエラーグループには、us-central1 リージョンのログバケットに含まれるエラーログのみが含まれます。グローバル エラーグループには、global リージョンのログバケットに含まれるエラーログのみが含まれます。

[エラーグループ] ページに表示されるエラーグループのリージョンをフィルタするには、[リージョン] メニューから値を選択します。このメニューのデフォルト値は global です。

[エラー グループ] ページの [地域] メニュー。

次のステップ