Ruby-Anwendungen für Error Reporting instrumentieren

Mithilfe der Error Reporting-Bibliothek für Rubykönnen Sie Fehlerereignisse von Ruby Anwendungen an Error Reporting senden. Verwenden Sie die Error Reporting-Bibliothek für Ruby, um Fehlergruppen für die folgenden Fälle zu erstellen:

  • Ein Log-Bucket, das Ihre Logeinträge enthält, hat vom Kunden verwaltete Verschlüsselung schlüssel (CMEK).
  • Der Log-Bucket erfüllt eine der folgenden Bedingungen:
    • Der Log-Bucket wird im selben Projekt gespeichert, aus dem die Logeinträge stammen.
    • Die Logeinträge wurden an ein Projekt weitergeleitet und in einem Log-Bucket gespeichert, dessen Inhaber dieses Projekt ist.
  • Sie möchten benutzerdefinierte Fehlerereignisse melden.

Error Reporting ist in einige Google Cloud Dienste wie Cloud Run-Funktionen und App Engine, Compute Engine und Google Kubernetes Engine eingebunden. In Error Reporting sehen Sie die in Cloud Logging protokollierten Fehlerereignisse der auf diesen Diensten ausgeführten Anwendungen. Weitere Informationen finden Sie auf dieser Seite unter Auf ausführen Google Cloud.

Sie können Fehlerereignisse auch mithilfe von Logging an Error Reporting senden. Informationen zu den Datenformatierungs anforderungen finden Sie unter Logeintrag formatieren, um Fehlerereignisse zu melden.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, erstellen Sie eines, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Error Reporting API .

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Error Reporting API .

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. Installieren Sie Ruby 2.2+ oder höher.

Clientbibliothek installieren

Mit der Error Reporting-Bibliothek für Ruby können Sie die von Ruby-Anwendungen gemeldeten Fehlerereignisse im Blick behalten und abrufen. Dabei ist es in den meisten Fällen unerheblich, wo die Anwendungen ausgeführt werden.

  1. Fügen Sie das Gem google-cloud-error_reporting in Ihr Gemfile ein:

    gem "google-cloud-error_reporting"
  2. Installieren Sie das Gem mit Bundler:

    bundle install

Bibliothek aktivieren

Wenn Sie Ruby on Rails verwenden, wird die Bibliothek beim Start Ihrer Anwendung automatisch von Bundler geladen.

Andere rackbasierte Anwendungen können die Rack-Middleware aus der Bibliothek verwenden:

require "google/cloud/error_reporting"

use Google::Cloud::ErrorReporting::Middleware

Weitere Informationen zur Installation finden Sie in der Dokumentation der Error Reporting-Bibliothek für Ruby. Probleme können Sie über die Problemverfolgung melden.

Clientbibliothek konfigurieren

Das Verhalten der Error Reporting-Bibliothek für Ruby kann angepasst werden. Die Konfiguration der Bibliothek enthält eine Liste der Konfigurationsoptionen.

Anwendungen auf ausführen Google Cloud

Wenn Sie mit projects.events.report Fehlergruppen erstellen möchten, benötigt Ihr Dienstkonto die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer).

Einige Google Cloud Dienste weisen dem entsprechenden Dienstkonto automatisch die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) zu. Bei einigen Diensten müssen Sie diese Rolle jedoch dem entsprechenden Dienstkonto zuweisen.

Cloud Run und Cloud Run Functions

Das von Cloud Run verwendete Standarddienstkonto hat die Berechtigungen der Rolle „Error Reporting-Autor“ (roles/errorreporting.writer).

Die Error Reporting-Bibliothek für Ruby kann verwendet werden, ohne dass Anmeldedaten explizit angegeben werden müssen.

Cloud Run ist automatisch für die Verwendung von Error Reporting konfiguriert. Unverarbeitete JavaScript-Ausnahmen werden in Logging angezeigt und von Error Reporting verarbeitet, ohne dass dafür die Error Reporting-Bibliothek für Ruby angewendet werden muss.

Konfigurationsoberfläche von Ruby on Rails verwenden

Wenn Sie die Error Reporting-Bibliothek für Ruby mit dem Ruby on Rails-Framework verwenden möchten, geben Sie die Parameter über die Konfigurationsoberfläche von Ruby on Rails an:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Error Reporting specific parameters
  config.google_cloud.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.error_reporting.keyfile    = "/path/to/service-account.json"
end

Wenn Sie Folgendes eingeben, können Sie eine gemeinsame Konfiguration für alle Stackdriver-Gems festlegen:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

Error Reporting ist standardmäßig aktiviert, wenn Rails im Produktionsmodus ausgeführt wird. Fügen Sie Folgendes hinzu, um Error Reporting im Entwicklungs modus zu aktivieren:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_error_reporting = true
end

Konfigurationsschnittstelle für Instrumentierung verwenden

Wenn Sie die Error Reporting-Bibliothek für Ruby in anderen rackbasierten Anwendungen verwenden möchten, geben Sie die Parameter über die Konfigurationsoberfläche an:

require "google/cloud/error_reporting"

Google::Cloud.configure do |config|
  # Stackdriver Error Reporting specific parameters
  config.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.error_reporting.keyfile    = "/path/to/service-account.json"
end

Wenn Sie Folgendes eingeben, können Sie eine gemeinsame Konfiguration für alle Google Cloud Observability-Gems festlegen:

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

Flexible App Engine-Umgebung

In App Engine wird die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) automatisch Ihrem Standarddienstkonto zugewiesen.

Die Error Reporting-Bibliothek für Ruby kann verwendet werden, ohne dass Anmeldedaten explizit angegeben werden müssen.

Error Reporting wird für Anwendungen in flexiblen App Engine-Umgebungen automatisch aktiviert. Es ist keine zusätzliche Einrichtung erforderlich.

Google Kubernetes Engine

So verwenden Sie Error Reporting mit Google Kubernetes Engine:

  1. Achten Sie darauf, dass dem Dienstkonto, das von Ihrem Container verwendet werden soll, die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) zugewiesen wurde.

    Sie können entweder das Compute Engine-Standarddienstkonto oder ein benutzerdefiniertes Dienstkonto verwenden.

    Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

  2. Erstellen Sie Ihren Cluster und weisen Sie ihm den cloud-platform Zugriffsbereich zu.

    Im folgenden Beispiel wird mit dem Befehl `create` der Zugriffsbereich cloud-platform und ein Dienstkonto angegeben:

    gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
    

Compute Engine

So verwenden Sie Error Reporting mit Compute Engine-VM-Instanzen:

  1. Achten Sie darauf, dass dem Dienstkonto, das von Ihrer VM-Instanz verwendet werden soll, die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) zugewiesen wurde.

    Sie können entweder das Compute Engine-Standarddienstkonto oder ein benutzerdefiniertes Dienstkonto verwenden.

    Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

  2. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    VM-Instanzen aufrufen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  3. Wählen Sie die VM-Instanz aus, die den cloud-platform Zugriffsbereich erhalten soll.

  4. Klicken Sie auf Beenden und dann auf Bearbeiten.

  5. Wählen Sie im Abschnitt Identität und API-Zugriff ein Dienstkonto mit der Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) aus.

  6. Wählen Sie im Abschnitt Zugriffsbereiche die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus und speichern Sie die Änderungen.

  7. Klicken Sie auf Starten/Fortsetzen.

Beispiel

Fehler in rackbasierten Frameworks melden

Mit der Error Reporting-Bibliothek für Ruby lässt sich Error Reporting problemlos in gängige rackbasierte Ruby-Web-Frameworks wie Ruby on Rails und Sinatra einbinden: Wenn die Bibliothek aktiviert ist, werden die im Rackstack der Anwendung erfassten Ausnahmen automatisch gemeldet.

Fehler manuell melden

Sie können einen Fehler auch manuell melden. Dazu rufen Sie die Methode report wie im folgenden Beispiel gezeigt auf:

require "google/cloud/error_reporting"

begin
  raise "Something went wrong"
rescue StandardError => e
  Google::Cloud::ErrorReporting.report e
end

Anwendungen in einer lokalen Entwicklungsumgebung ausführen

Wenn Sie die Error Reporting-Bibliothek für Ruby in einer lokalen Entwicklungsumgebung verwenden möchten, z. B. auf Ihrer eigenen Workstation, müssen Sie die lokalen Standardanmeldedaten für Anwendungen für die Error Reporting-Bibliothek für Ruby angeben. Weitere Informationen finden Sie unter Bei Error Reporting authentifizieren.

Wenn Sie die Ruby-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

  1. Installieren Sie die Google Cloud CLI.

  2. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  3. Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:

    gcloud auth application-default login

    Wenn Sie Cloud Shell verwenden, ist dies nicht erforderlich.

    Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.

Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Die projects.events.report Methode unterstützt auch API-Schlüssel. Wenn Sie API-Schlüssel für die Authentifizierung verwenden möchten, müssen Sie keine lokale ADC-Datei (Standardanmeldedaten für Anwendungen) einrichten. Weitere Informationen finden Sie in der Dokumentation zur Authentifizierung unter API-Schlüssel erstellen Google Cloud .

Konfigurationsoberfläche von Ruby on Rails verwenden

Wenn Sie die Error Reporting-Bibliothek für Ruby mit dem Ruby on Rails-Framework verwenden möchten, geben Sie die Parameter über die Konfigurationsoberfläche von Ruby on Rails an:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Error Reporting specific parameters
  config.google_cloud.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.error_reporting.keyfile    = "/path/to/service-account.json"
end

Wenn Sie Folgendes eingeben, können Sie eine gemeinsame Konfiguration für alle Stackdriver-Gems festlegen:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

Error Reporting ist standardmäßig aktiviert, wenn Rails im Produktionsmodus ausgeführt wird. Fügen Sie Folgendes hinzu, um Error Reporting im Entwicklungs modus zu aktivieren:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_error_reporting = true
end

Konfigurationsschnittstelle für Instrumentierung verwenden

Wenn Sie die Error Reporting-Bibliothek für Ruby in anderen rackbasierten Anwendungen verwenden möchten, geben Sie die Parameter über die Konfigurationsoberfläche an:

require "google/cloud/error_reporting"

Google::Cloud.configure do |config|
  # Stackdriver Error Reporting specific parameters
  config.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.error_reporting.keyfile    = "/path/to/service-account.json"
end

Wenn Sie Folgendes eingeben, können Sie eine gemeinsame Konfiguration für alle Google Cloud Observability-Gems festlegen:

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

Fehlergruppen ansehen

Rufen Sie in der Google Cloud Console die Seite Error Reporting auf:

**Error Reporting** aufrufen

Sie können diese Seite auch über die Suchleiste finden.

Weitere Informationen finden Sie unter Fehlergruppen ansehen und filtern.