Error Reporting を使用してエラーデータを収集する

アプリケーションの例外とエラーイベントを Error Reporting に送信すると、Error Reporting でGoogle Cloud プロジェクトのエラーデータを分析できます。コンピューティング環境、プログラミング言語、認証要件に応じて、次の方法でエラーデータを収集できます。

  • ログの自動収集: サポートされているコンピューティング環境は、Error Reporting で分析するために、エラーデータを Cloud Logging に自動的に送信します。たとえば、Cloud Run は stderr に書き込まれた例外を Logging に自動的に送信します。
  • クライアント ライブラリ: 言語固有のクライアント ライブラリを使用してアプリケーション コードを計測し、アプリからエラーレポートを直接送信できます。
  • REST API: API キー認証が必要な場合を含め、Error Reporting API または Cloud Logging API を呼び出して、フォーマットされたエラーイベントとスタック トレースを書き込むことができます。

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

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

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

VPC Service Controls のサポート

VPC Service Controls は Error Reporting をサポートしています。

データの引き出しのリスクを軽減するには、VPC Service Controls を使用して、Google マネージド サービスの周囲にサービス境界を作成します。VPC Service Controls の概要、およびサービス境界の作成方法については、VPC Service Controls のドキュメントをご覧ください。

エラーデータを自動的に報告するように環境を構成する

環境に固有の構成の要件については、次のガイドをご覧ください。

クライアント ライブラリを使用してアプリを計測する

アプリケーションを構成してエラーレポートを送信する方法については、言語に固有の構成ガイドをご覧ください。

API を使用してエラーデータを書き込む

Error Reporting API メソッド report または Logging API メソッド write を実行することで、 Google Cloud プロジェクトにエラーイベントを報告できます。

  • API キーベースの認証が必要な場合は、Error Reporting API を使用する必要があります。Error Reporting API を使用してエラーイベントを報告するには、メソッド report を実行して、メソッドのリクエスト本文を ReportedErrorEvent オブジェクトとしてフォーマットします。

    Error Reporting API を使用すると、適切な形式のエラー メッセージを含むログエントリが自動的に生成され、Logging に書き込まれます。これらのログエントリは、logName が次のようにフォーマットされたログに書き込まれます。

    projects/PROJECT_ID/clouderrorreporting.googleapis.com%2Freported_errors
    

    ログエントリは report への呼び出しによって生成されるため、Logging の取り込み費用が発生する可能性があります。取り込むログエントリを指定するには、除外フィルタをご覧ください。

  • Logging API を使用する場合は、スタック トレースまたは ReportedErrorEvent オブジェクトを含むように LogEntry オブジェクトの形式を設定する必要があります。形式の要件の詳細については、ログの形式設定エラーをご覧ください。