Ruby アプリケーションから Error Reporting にエラーレポートを送信するには、Ruby 用 Error Reporting ライブラリを使用します。 次の場合は、Ruby 用 Error Reporting ライブラリを使用してエラーグループを作成します。
- ログエントリを含むログバケットに、顧客管理の暗号鍵(CMEK)がある。
- ログバケットが次のいずれかを満たしている。
- ログバケットがログエントリの元のプロジェクトに保存されている。
- ログエントリがプロジェクトに転送され、そのプロジェクトがそれらのログエントリを、所有するログバケットに保存した。
- カスタム エラーイベントを報告する必要がある。
Error Reporting は、Cloud Functions、App Engine、Compute Engine、Google Kubernetes Engine などの一部の Google Cloud サービスに統合されています。Error Reporting は、こうしたサービスで実行されるアプリケーションによって Cloud Logging に記録されたエラーを表示します。詳細については、このページの Google Cloud での実行をご覧ください。
Logging を使用して、エラーデータを Error Reporting に送信することもできます。データ形式の要件については、Logging のエラー メッセージの形式設定をご覧ください。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Error Reporting API .
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Error Reporting API .
- Ruby 2.2+ 以降をインストールします。
クライアント ライブラリをインストールする
Ruby 用の Error Reporting ライブラリを使用すると、ほぼすべての場所で動作している Ruby アプリケーションから報告されるエラーをモニタリングして表示できます。
-
Gemfile に
google-cloud-error_reporting
gem を追加します。gem "google-cloud-error_reporting"
-
Bundler を使用して gem をインストールします。
bundle install
ライブラリの有効化
Ruby on Rails を使用している場合、Bundler は起動時に、ライブラリをアプリケーションに自動的に読み込みます。
他の Rack ベースのアプリケーションでは、ライブラリが提供する Rack ミドルウェアを使用できます。
インストールの詳細については、Ruby 用 Error Reporting ライブラリのドキュメントをご覧ください。公開バグトラッカーを使用して問題を報告することもできます。
クライアント ライブラリを設定する
Ruby 用の Error Reporting ライブラリの動作をカスタマイズできます。構成可能なオプションのリストについては、ライブラリの構成をご覧ください。
Google Cloud でアプリを実行する
projects.events.report
を使用してエラーグループを作成するには、サービス アカウントに Error Reporting 書き込みロール(roles/errorreporting.writer
)が必要です。
一部の Google Cloud サービスでは、Error Reporting 書き込みロール(roles/errorreporting.writer
)が適切なサービス アカウントに自動的に付与されます。ただし、一部のサービスでは、適切なサービス アカウントにこのロールを付与する必要があります。
App Engine フレキシブル環境
App Engine では、デフォルトのサービス アカウントに Error Reporting 書き込みロール(roles/errorreporting.writer
)が自動的に付与されます。
Ruby 用 Error Reporting ライブラリは、明示的に認証情報を提示しなくても使用できます。
App Engine のフレキシブル環境のアプリケーションでは、Error Reporting が自動的に有効になります。特別な設定は必要ありません。Google Kubernetes Engine
Google Kubernetes Engine で Error Reporting を使用するには、次の操作を行います。
コンテナが使用するサービス アカウントに、Error Reporting 書き込みロール(
roles/errorreporting.writer
)が付与されていることを確認します。Compute Engine のデフォルトのサービス アカウントまたはカスタム サービス アカウントを使用できます。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
クラスタを作成し、クラスタに
cloud-platform
アクセス スコープを付与します。たとえば、次の作成コマンドは、
cloud-platform
アクセス スコープとサービス アカウントを指定します。gcloud container clusters create CLUSTER_NAME --service-account SERVICE_ACCT_NAME --scopes=cloud-platform
Compute Engine
Compute Engine VM インスタンスで Error Reporting を使用する手順は次のとおりです。
VM インスタンスが使用するサービス アカウントに、Error Reporting 書き込みロール(
roles/errorreporting.writer
)が付与されていることを確認します。Compute Engine のデフォルトのサービス アカウントまたはカスタム サービス アカウントを使用できます。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
-
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] である結果を選択します。
cloud-platform
アクセス スコープを適用する VM インスタンスを選択します。[停止]、[編集] の順にクリックします。
[ID と API へのアクセス] セクションで、Error Reporting 書き込みロール(
roles/errorreporting.writer
)を持つサービス アカウントを選択します。[アクセス スコープ] セクションで、[すべての Cloud API に完全アクセス権を許可] を選択し、変更を保存します。
[開始 / 再開] をクリックします。
Cloud Functions
Cloud Run 関数は、Error Reporting 書き込みロール(roles/errorreporting.writer
)をデフォルトのサービス アカウントに自動的に付与します。
Ruby 用 Error Reporting ライブラリは、明示的に認証情報を提示しなくても使用できます。
Cloud Run 関数は、自動的に Error Reporting を使用するように構成されています。JavaScript の未処理の例外は、Logging に表示され、Ruby 用 Error Reporting ライブラリを使用しなくても、Error Reporting によって処理されます。
Ruby on Rails 構成インターフェースの使用
Ruby on Rails フレームワークで Ruby 用 Error Reporting ライブラリを使用するには、Ruby on Rails 構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Stackdriver gem の共有構成を設定することもできます。
Rails を本番環境で実行すると、デフォルトで Error Reporting が有効になります。開発モードで Error Reporting を有効にするには、次のコードを追加します。
インストルメンテーション設定インタフェースの使用
他の Rack ベースのアプリケーションで Ruby 用 Error Reporting ライブラリを使用するには、構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Google Cloud Observability gem の共有構成を設定することもできます。
例
ラックベースのフレームワークでのエラー報告
Ruby 用の Error Reporting ライブラリを使用すると、Ruby on Rails や Sinatra などの一般的なラックベースの Ruby ウェブ フレームワークに Error Reporting を簡単に統合できます。ライブラリを有効にすると、アプリケーションのラックスタックからキャプチャされた例外が自動的に報告されます。
手動でのエラー報告
手動でエラーを報告するには、次の例で示すように、report
メソッドを呼び出します。
ローカル開発環境でアプリを実行する
自分のワークステーションでライブラリを実行するなど、ローカル開発環境で Ruby 用 Error Reporting ライブラリを使用するには、ローカル アプリケーションのデフォルト認証情報を使用して、Ruby 用 Error Reporting ライブラリを指定する必要があります。詳細については、Error Reporting に対して認証するをご覧ください。
ローカル開発環境でこのページの Ruby サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については Set up authentication for a local development environment をご覧ください。
projects.events.report
メソッドは API キーもサポートしています。
認証に API キーを使用する場合、ローカルのアプリケーションのデフォルト認証情報ファイルを設定する必要はありません。詳細については、 Google Cloud の認証に関するドキュメントの API キーを作成するをご覧ください。
Ruby on Rails 構成インターフェースの使用
Ruby on Rails フレームワークで Ruby 用 Error Reporting ライブラリを使用するには、Ruby on Rails 構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Stackdriver gem の共有構成を設定することもできます。
Rails を本番環境で実行すると、デフォルトで Error Reporting が有効になります。開発モードで Error Reporting を有効にするには、次のコードを追加します。
インストルメンテーション設定インタフェースの使用
他の Rack ベースのアプリケーションで Ruby 用 Error Reporting ライブラリを使用するには、構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Google Cloud Observability gem の共有構成を設定することもできます。
エラーレポートの表示
Google Cloud コンソールで、[Error Reporting] ページに移動します。
このページは、検索バーを使用して見つけることもできます。
詳細については、エラーの表示をご覧ください。