Ruby-Anwendungen für Error Reporting instrumentieren

Mithilfe der Error Reporting-Bibliothek für Ruby können Sie Fehlerberichte 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, der Ihre Logeinträge enthält, hat eine vom Kunden verwaltete Verschlüsselung Schlüssel (CMEK).
  • Der Log-Bucket erfüllt eine der folgenden Anforderungen: <ph type="x-smartling-placeholder">
      </ph>
    • Der Log-Bucket wird in dem Projekt gespeichert, in dem sich auch die Logeinträge befinden entstand.
    • Die Logeinträge wurden an ein Projekt weitergeleitet, das dann in diesem Projekt gespeichert wurde in einem Log-Bucket, der ihm gehört.
  • Sie möchten benutzerdefinierte Fehlerereignisse melden.

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

Sie können Fehlerdaten auch mithilfe von Logging an Error Reporting senden. Informationen zu den Datenformatierungsanforderungen finden Sie unter Fehlermeldungen in Logging formatieren.

Hinweise

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Enable the Error Reporting API .

    Enable the API

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

    Go to project selector

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Enable the Error Reporting API .

    Enable the API

  8. Ruby 2.2+ installieren oder höher.

Clientbibliothek installieren

Mit der Error Reporting-Bibliothek für Ruby können Sie die von Ruby-Anwendungen, die nahezu überall ausgeführt werden können

  1. Fügen Sie Ihrer Gemfile das Gem google-cloud-error_reporting hinzu:

    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 in Google Cloud ausführen

Um Fehlergruppen mithilfe von projects.events.report, Ihr Dienstkonto benötigt die Rolle „Error Reporting-Autor“ (roles/errorreporting.writer):

Einige Google Cloud-Dienste gewähren automatisch Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) der entsprechenden Dienstkonto. Sie müssen diese Rolle jedoch dem entsprechenden Dienst für einige Dienste.

Flexible App Engine-Umgebung

App Engine gewährt den Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) automatisch mit Ihrem Standarddienstkonto verknüpft.

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

Um Error Reporting mit Google Kubernetes Engine zu verwenden, Gehen Sie so vor:

  1. Prüfen Sie, ob das von Ihrem Container zu verwendende Dienstkonto gewährte Rolle „Error Reporting-Autor“ (roles/errorreporting.writer):

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

    Informationen zum Gewähren von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten

  2. Cluster erstellen und dem Cluster die cloud-platform Zugriffsbereich.

    Der folgende Befehl zum Erstellen gibt beispielsweise die cloud-platform an. Zugriffsbereich und ein Dienstkonto:

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

Compute Engine

Um Error Reporting mit Compute Engine-VM-Instanzen zu verwenden, Gehen Sie so vor:

  1. Prüfen Sie, ob das von Ihrer VM-Instanz zu verwendende Dienstkonto gewährte Rolle „Error Reporting-Autor“ (roles/errorreporting.writer):

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

    Informationen zum Gewähren 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:

    Zu Seite VM-Instanzen

    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 Sie erhalten möchten. cloud-platform Zugriffsbereich.

  4. Klicken Sie auf Beenden und dann auf Bearbeiten.

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

  6. Gehen Sie im Abschnitt Zugriffsbereiche so vor: Wählen Sie Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus und speichern Sie Ihre Änderungen.

  7. Klicken Sie auf Starten/Fortsetzen.

Cloud Functions

Cloud Run-Funktionen gewähren die Rolle Rolle „Error Reporting-Autor“ (roles/errorreporting.writer) automatisch mit Ihrem Standarddienstkonto verknüpft.

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

Cloud Run-Funktionen sind für die Verwendung von Error Reporting konfiguriert automatisch. Unverarbeitet JavaScript-Ausnahmen werden in Logging angezeigt und von Error Reporting erstellen können, ohne den Error Reporting-Bibliothek für Ruby.

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 Entwicklungsmodus 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

Sie können auch eine gemeinsame Konfiguration für alle Google Cloud-Gems zur Beobachtbarkeit festlegen Dazu verwenden wir:

require "stackdriver"

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

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

So verwenden Sie die Error Reporting-Bibliothek für Ruby in einer lokalen Entwicklungsumgebung: wie das Ausführen der Bibliothek auf Ihrer eigenen Workstation, müssen Sie Error Reporting-Bibliothek für Ruby durch die Standardanmeldedaten für lokale Anwendungen. 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. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. 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.

Weitere Informationen unter Set up authentication for a local development environment.

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 Datei mit den Standardanmeldedaten für Anwendungen einrichten. Weitere Informationen unter Erstellen eines API-Schlüssels in der Dokumentation zur Google Cloud-Authentifizierung.

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 Entwicklungsmodus 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

Sie können auch eine gemeinsame Konfiguration für alle Google Cloud-Gems zur Beobachtbarkeit festlegen Dazu verwenden wir:

require "stackdriver"

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

Fehlerberichte 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 Fehler anzeigen.